will stop optional dlls from being loaded.
You can't just unload a dll externally though.
You would have to ask a process to do it, which means said software has some way to successfully process such a request either through message or some sort of configuration read on start up.
If I wrote a piece of software that used a dll, I can load it implicitly or explicitly.
Usually implicit loads are for mandatory dlls, explicit for optional ones (like snap-ins).
If I'm loading a dll that means it's in my memory space and therefore should be inviolate, only the software that loaded it can unload it, it's the owner.