If you ever felt interest into how Windows loader works you definitely know that it works just so same DLL can't be loaded twice, under any circumstances. OK, I can put a correction here, a DLL referred by same path.
Though a colleague of mine, James Thomson, was lucky to prove the opposite. The question has already been risen in 4 different places in the Internet:
MSDN Forums
Google Groups
WASM Phorum (russian language)
RSDN Forums (russian language)
Still I would like to point out attention to it here as well, as in none of that places we were able to get the explanation of what's going on with Windows loader.
If you like you can have a look at sample application prepared by James here.
In few words we first load a DLL by creating a COM object living in it using SxS (Side by Side) COM manifest for that purpose. And then we load it again, as statically linked DLL to an intermediate DLL that we load via LoadLibrary. Load order is explained in this pic. Well, voila, you can already see 2 instances of the same binary image in memory. Just if you are curious and try changing steps of load procedure you'll be surprised to see that doing so causes only one DLL instance to reside in memory.
That's all. Reproducible under WinXP SP2 and under Vista Business. Have not tried under any other OS though.