Когда вы используете эту перегрузку, она будет загружена в память только один раз. Вы можете проверить это с помощью Process Explorer. Посмотрите на список загруженных модулей. Каждая сборка загружается до .NET 3.5 с LoadLibrary. Кроме того, он загружается в файл как отображенный в памяти процесс.
Начиная с .NET 4.0, сборка загружается только в виде файла с отображенной памятью, а не через LoadLibrary, за исключением случаев, когда это предварительно скомпилированная сборочная версия.
Это серьезное изменение в .NET 4 было сделано из-за того, что MS обнаружила во время разработки VS 2010, что их память истощалась довольно быстро. Кто-то обнаружил, что каждая загруженная сборка занимала в виртуальной памяти в два раза больше своего первоначального размера, потому что она была загружена один раз через LoadLibrary и второй раз как файл отображения памяти. Это нелегко найти, кроме случаев, когда вы изучаете VMMap в своем процессе. Из-за огромного количества кода в VS это было основной проблемой для VS2010, который сейчас в основном управляется.