It's almost certainly because they are in the GAC. .Net only really knows two well known locations for assemblies and that is the GAC and the application directory of the current process. Anything else is customized behaviour that may or may not work with specific assemblies.
A process can add extra directories to the AppDomain but that is custom behaviour. LabVIEW does that in the development environment for the project directory. But in an executable there is no project anymore.
If you really want to know the finer details of .Net assembly loading you can read this KB article. Expect to learn a lot more about .Net before you can even somewhat comprehend what it says there.