When used on an end-user application, GPL does a fantastic job. But in library use, it's a very viral license.
Say you wanted to write a KDE-native application back when Qt was GPL or commercial only. You couldn't do it by using GTK+ ... it wouldn't look quite right. You would have to pay money, or make your application GPL as well. And what if you couldn't pay?
It's not hard to imagine a world where the GPL truly took off, and everything from the top-level GUI toolkit all the way down to libc functions were all GPL'ed. You'd be forced to start from absolutely nothing to make even simple applications. Years and years of work just to get a basic desktop application going. And it would be entirely alien to the rest of the OS. That's not really an "option" anymore. Nobody would implement that much just to port to one OS.
No, we're not there. And no, we're never going to get there. Most library writers wisely choose the LGPL, and many others release everything under the BSD license. But if you take the GPL to its extreme conclusions, you can see why people consider it viral.
Say you wanted to write a streaming application and have popular films on it. You would have to pay money, and make your application follow the restrictive demands of the movie publishers. And what if you couldn't pay?
You'd be forced to start from absolutely nothing, with no proprietary movies at all. Millions and millions of licenses cost just to get a basic streaming application going, and it would entirely alien to an community where everyone share and share alike. That's not really an "option" for most developers of streaming services.
Proprietary movies is already in its extreme conclusion, and you can see why so many people consider proprietary licenses as deadly radioactive material that puts people in jail.
Anyway, to me GPL and LGPL always was the same thing but in different contexts: GPL = Applications; LGPL = Libraries - a nice trick is instead reading Lesser GPL, read it Library GPL. It fells better.
Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
There's no distinction about static vs. dynamic linking, and no specific requirement like the LGPL to be able to relink the application (though the GPL's general requirement to produce useful source + build scripts for the library still applies).
You can link it with whatever proprietary code you want, but keep the LGPL library free. As long as you don't want to link LGPL-licensed library statically, it's quite simple to comply with license terms.
There's also MPL (v2), that's weaker than LGPL, roughly operates on file-level (rather than LGPL's library-level).