The reason the delay occurs has nothing to do with the BO (unless you are pulling back a large number of records from the server). If the BO is just instantiating, then this is not your issue. The connections to the data is not connected unless you request data, and this is extremely fast and definiltey not recognizable.The reason this seems to take a little longer has do with the structure of your assemblies. There is nothing wrong with this approach, but the reason you are seeing a delay more than likely has to do with the fact that the assembly containing the child is being loaded into memory. .NET only loads assemblies as they are needed. Even if you have 100 references to unique assemblies, the referenced assemblied are not loaded into the AppDomain until some class is called or referenced that depended upon that assembly.
If you really want to see where your time delays are happening then you may want to invest in a product such as a .NET Profiler (Red Gate has one) which breaks down each line of code and creates reports telling you exactly where your time delays are occurring.
This is something that we do all of the time, and is common place for most any application. But I am confident your problem here is not in the BO arena but more than likely something else that is taking place when the assembly is loaded.