Not sure if this answers your question 100%, but I hope it points you in the right direction.
If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?
It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main' function of the plug-in with some options and waiting for it to return, that is a borderline case.
If the library is an OS library, then you should have no problems.
Some apps have switched to LGPL to allow linking proprietary libraries.
But I think it's the other way... you couldn't write a proprietary app based on a gpl library.
Look at all the 'open source' apps based on .NET and other windows technologyies.
I my self don't believe such apps are truly open source, as they rely on non open code.
"The standard disclaimer applies, I am not a lawyer and this is not legal advice."
I had a difficult time figuring this out when I released a plugin for the closed-source software LCDC under the GPL. While it's clear that you can't link a GPL library into a non-GPL executable, the reverse case seems to be more muddy. I finally settled to my satisfaction that the spirit of the GPL should not prevent me from open-sourcing a library even if that library only is meaningful when used with a closed-source executable, given that I as the copyright holder can state the intent that the library be linked with proprietary software. It's sort of like the proprietary software is my "OS" and I'm linking to it.
I had read the FAQ but wasn't certain what to think after reading the plugin question. The library I have in mind definitely doesn't call back into the main app (as the faq answer says) and they share data structures only in the sense of the library taking parameters.. not sharing in the shared memory sense of both accessing an in-memory structure being maintained by the program. Quite a gray area.. but it does seem clear as to the intent now. Thanks for the sanity check!
This viewpoint has been used by some hardware companies with respect to their linux drivers -- they start by writing a FreeBSD driver, and then port that driver to linux. The FreeBSD driver (which contains all the details which they want to keep secret) is obviously not a "derived work" of linux, so this keeps them safe from any arguments about GPL taint.