Я думаю, что неуправляемые dll загружаются ОС только один раз за процесс, поэтому у каждого домена приложения будет один и тот же загруженный экземпляр. Чтобы выгрузить dll, используйте функцию FreeLibrary. Однако, поскольку несколько доменов приложений, вероятно, загрузили DLL, нет никакой гарантии, что FreeLibrary из одного домена приложения действительно освободит / выгружает DLL.
Как говорит BillW, это тоже кажется мне кошмаром дизайна!