ad 1.:
You cannot link to the library (or its import library) since that will cause an error 0x0000000c (or was it 0x0000005...?) at load time. If you link to a library, then the OS must be able to find it.
Therefore, what you have to do is this: You load the library manually, and then you set up function pointers for all functions you want to use. You initialise those using GetProcAddress (or a similar function). If you have worked with OpenGL before, you know the procedere, it's identical to loading OpenGL extensions.
ad 2.:
Yes, because LoadLibrary (and dlopen likewise) perform reference counting. They load every library exactly once and free the library when all processes that use it have unloaded it or have terminated.
If several processes load the same library, they normally share the physical memory of all readonly pages and treat the rest with copy-on-write semantics. The applications don't know about that due to virtual addresses (it "just works"). Anyway, since your two plugins run inside the same process space, this isn't an issue in any case.