NTの内部仕様についての詳しい知識はありません(^^;;;
Windowsプログラミングを学ぶうちに知った程度です。
一般的なDLLの利点については以下マイクロソフトサイトのMSDNライブラリより
http://www.microsoft.com/japan/developer/library/vccore/_core_the_advantages_of_using_dlls.htmより専門的なところでは英語ですが、マイクロソフトのオンラインMSDNライブラリから
たどれるドキュメントにあります。本は知らない(^^;;; リソースキットとかかな?
http://www.microsoft.com/japan/developer/library/vccore/_core_the_advantages_of_using_dlls.htmプロセス毎に全てのDLLを全部メモリ(仮想アドレス空間)にロードしてたら大変。
そうならないようにチューニングされているはずです。あ、いやワカランが(^^;;;
例えば、notepad を 100個立ち上げると単純計算で 約300MBぐらいのメモリを食うはずです(NT4の場合)。
しかし、タスクマネージャを見れば分かりますが、実際の半分以下ぐらいしかコミットされないはず。
じゃぁDLLが落ちたとき、そのDLLを共有しているアプリが全部落ちてしまうんじゃないの?
という疑問はあると思います。その辺の疑問は私も持っているんです(^^;;;