In the MSDN documentation for the AppDomain.CreateInstanceAndUnwrap method, it states as a note
If you make an early-bound call to a method M of an object of type T1 that was returned by CreateInstanceAndUnwrap, and that method makes an early-bound call to a method of an object of type T2 in an assembly C other than the current assembly or the assembly containing T1, assembly C is loaded into the current application domain. This loading occurs even if the early-bound call to T1.M() was made in the body of a DynamicMethod, or in other dynamically generated code. If the current domain is the default domain, assembly C cannot be unloaded until the process ends. If the current domain later attempts to load assembly C, the load might fail.
(http://msdn.microsoft.com/en-us/library/3c4f1xde.aspx)
Does anyone have a technical explanation for the above note? Why is this the case? Is Assembly dependency lookup done when a method is first called on the object?