Ответ 1
Да. Вы всегда загружаете файл mscoree.dll, который является загрузчиком для хоста CLR по умолчанию. Это неуправляемая DLL. Каждая сборка .NET содержит небольшой бит собственного кода, просто переход в эту DLL. Однако он загружается последними версиями Windows, загрузчик ОС имеет встроенную интеграцию .NET. Вы можете увидеть его в окне Debug + Modules, когда вы включаете параметр неуправляемой отладки, Project + Properties, вкладку Debug. Затем вы также увидите mscorjit.dll, mscorwks.dll и msvcr80.dll, три других куска собственного кода, которые необходимы для запуска управляемого кода. Соответственно, компилятор точно в срок, среда CLR и библиотека поддержки C-runtime. Они имеют разные имена DLL в .NET 4.
Технически можно не загружать файл mscorlib.dll, у компилятора есть опция /nostdlib, чтобы избежать ссылки на эту сборку. Практически это работает только в том случае, если вы предоставляете замену, например, как скомпилировать Silverlight. В противном случае это сборка смешанного режима с некоторым собственным кодом, но главным образом управляемым кодом. Из-за этого существует отдельная версия для 64-разрядной системы. Вы также увидите, что mscorlib.ni.dll с неуправляемой отладкой включен, что версия версии сборки.