To restate the obvious:
There are two paradoxical possible twists to an open source license.
1. The user is allowed to use the source as part of a closed source product (which is a kind of freedom)
2. The user is obliged to make derivatives available as source (which ensures the greater freedom of other users/developers) (this is a restriction on the actions of user 1)
Neither one is complete freedom. They are both giving up something - the possible work of the downstream user or the business motivation of the first user.
The GPL's origin is in RMS' desire to be able to modify software that was produced by companies. It takes this to the extreme, basically by prohibiting closed source products based on GPL.
The benefit of this is mostly to developers, and within that, to developers who are independent. Software companies share code / secrets a lot as part of business, but under NDAs. The FSF has as a slogan "you deserve software that is free" but how many users want to exercise the freedom to modify and recompile their software?
More and more, FOSS is produced in a dual stream approach - Redhat/Fedora, Jboss community/pro, other things work this way like Jasper reports etc
The reality of this is that the code that is run in production is not "free" in an active way. When you pay for a supported version of RHEL or whatever you do not generally modify anything very deep inside it and then demand support for your modified version. The fact that you are paying for a supported version is a disincentive to using a modifed version, your own or anyone else's.
Also consider that the Linux kernel is largely developed by people working for IBM, Suse, Redhat, etc.
So while the lone developer wanting to add his improvements to the commercially produced and defective printer driver is a convincing story to argue for the GPL, the reality as it is today is different - it's more like the millions of Linux users who wish their hardware was supported but do not produce a driver for it. And I know they may not have access to the necessary information from the hardware maker, etc. Still, the number of people able and motivated to write OS-level code is small. I know I don't know enough to do it.
Nonetheless, the existence of (mostly) GPL OSes is an amazing thing. The access to knowledge for developers that that provides is awesome. But a lot of the requirements to stay GPL-pure do not sound like freedoms to me- requiring you not to buy certain(most) products, visit certain sites - it's ironic when, in the name of freedom, your freedom to act as you wish must be limited.