Вы правы, библиотеки DLL вашего приложения загружаются по требованию во время выполнения, и они останутся загруженными, если вашей системе не хватит памяти.
Таким образом, если вы запустите одну и ту же программу несколько раз, второй запуск будет быстрее благодаря преимуществам предварительно загруженных библиотек.
Пожалуйста, посмотрите:
Понимание холодного запуска и теплого запуска
Холодный запуск происходит, когда ваше приложение запускается в первый раз после перезагрузки системы, или когда вы запускаете свое приложение, закройте его, а затем снова запустите его через длительный период времени. При запуске приложения, если требуемые страницы (код, статические данные, реестр и т.д.) Отсутствуют в списке ожидания диспетчера памяти Windows, возникают сбои страниц. Доступ к диску необходим для загрузки страниц в память.
Горячий запуск происходит, когда большинство страниц для основных компонентов CLR уже загружены в память, что экономит дорогое время доступа к диску. Вот почему управляемое приложение запускается быстрее, когда оно запускается во второй раз.