Podríamos tener 2 DLL con el mismo nombre que se está cargando en un proceso

Estoy hablando de archivos DLL de Win32, esos archivos de pe llano. Estoy confundido después de hacer una prueba en comparación con lo que vi en el proceso explorer.exe.

Escribí una prueba con los siguientes módulos: (C ++)
DLLLoader.exe enlaza a A.dll en la misma carpeta.
B.dll enlaza a A.dll (2) en otra carpeta. (A.dll (2) es una DLL totalmente diferente de A.dll, pero con el mismo nombre)
DLLLoader.exe cargará B.dll explícitamente a través de :: LoadLibrary.
Ahora inicio DllLoader.exe, en primer lugar, se cargará A.dll, pero luego, cuando intente cargar B.dll, simplemente fallará: sospecho que se debe a que B.dll piensa que A.dll ya está cargado en el proceso, pero de hecho, el que está cargado no es el que buscaba B.dll, la tabla de importación / exportación no puede coincidir, por lo que no se pudo cargar B.dll.
Esto parece indicarnos que no podemos cargar 2 dlls del mismo nombre en el mismo proceso, incluso si son de una ruta diferente.

Pero cuando utilicé el explorador de procesos para monitorear los módulos cargados en el proceso explorer.exe de Windows, pude ver los siguientes 2 archivos DLL cargados, con el mismo nombre:
Biblioteca de controles de la experiencia del usuario comctl32.dll C: \ WINDOWS \ WinSxS ... \ comctl32.dll
Comctl32.dll Biblioteca de controles comunes C: \ WINDOWS \ system32 \ comctl32.dll

¿Podría alguno de ustedes arrojar algo de luz sobre esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta