Does Castle project DynamicProxy heavily use Reflection ... like constantly?
Or does it do up front reflection cache the data?
It doesn't use Reflection at all as soon as the instance of the proxy class is instantiated.
It just creates a derived class at runtime. To create that class, it might need to use reflection, but once the class is created, it is just like any other class.