No, because on any sensible operating system, the running applications are not capable of writing to the memory that the shared library lives.
What? Of course a running application can write to the memory where the linked library is. They share the same process space.

The reason the dll doesn't get corrupted is that when a new application loads a dll, the dll is loaded in that application's process space. The memory of a dll is not shared among the different processes UNLESS you explicity declare it that way with special compiler directives.