The use of dynamically loaded VIs is a common and important approach for large applications. It can help decrease load-time or make it possible to 'plug-in' new functionality into an existing application. It's a concept I use in several of the examples I've shared in this blog, but one that often trips up users who are just experimenting with dynamic calls for the first time.
Christina Rogers, author of the Eyes on VIs blog, just posted a great video that explains how LabVIEW manages VI references, which is important for dynamic VI calls. If you have a few minutes, be sure to check it out: VI Reference Lifetime