Die EXE wird immer komplett in den Speicher geladen?
Nein, nicht wirklich. Windows verwendet hier seine virtuelle Speicherverwaltung: Die Datei wird (wie ein memory mapped file) mit einem Speicherbereich im Addressraum des Prozesses verknüpft. Der ist in Seiten fester Größe aufgeteilt, und wenn auf eine Addresse zugegriffen wird wird die Seite (wenn noch nicht geschehen) aus der Datei in den physischen Arbeitsspeicher geladen. Es werden also aus einer Programmdatei (oder
DLL) nur die Teile geladen, die auch verwendet werden.