That's just it. A *lot* of GPL'd code out there has great parts in it but the way they are arranged isn't adequate to solve the task at hand.
In the spirit of innovation, I often want to combine multiple projects to create something completely new. Some are GPL'd, some have free do whatever you want licenses, some glue I write myself to stitch them together.
I don't mind giving some new code to the GPL'd project, but I can't push the other-licensed code under the GPL. I don't own it and I'm only using it. Also, the library is maybe 20% of my product at most - so if it means figuring out how to work around not having the library, then thats what will happen, but then everybody loses.
The GPL's notion of what is a "program" is antiquated. It doesn't take into account component based development.
That's the way I see it anyhow.