У вас случай, когда "оба правы".
Всё верно, изначально так и предполагалось, что DLL в память загружается, и потом ею пользуются все, кому не лень. Но, потом начались вот эти самые траблы, о которых ты говоришь - "адресное пространство процесса", "синхронизация", и прочие сложности...
Как там сейчас это организовано - не знаю, памяти-то сейчас немеряно... Но изначально идея была именно такой - "одна DLL может использоваться многими процессами".