I think there is one critical point that we all should agree on — developers like to be compensated for their work, even those of Open Source and Free Software.
Some assume that GNU GPL makes it almost impossible or at least very hard to earn fair compensation for time invested in developing the software, while “Liberal” licences allow the freedom to determine (and guarantee) the compensation through controlling the distribution.
The reason for this is the current implementation of the competition-driven capitalism which has made the concepts of donation and freedom to compensate completely bizarre in the context of how businesses work these days.
Just imagine the developers of GCC receiving compensation every month through voluntary donations from Apple and other commercial entities that use and benefit from it. All this would require is a “GCC Developers’ Association” which would take care of distributing the money to all the developers in proportion to their contribution. The total amount of hours spent developing the software every month is pretty easy to estimate.
OS X would become O(pen)S X and Windows would become Open Windows. Both Apple and Microsoft could still charge $150 for their “genius bar” / support services, and at the same time gain the whole world of developers scratching their own itches and improving the software.
It is so much easier to reason paying a real person for their expertise in solving computer problem than to a corporation that aims to get maximum profits for the lowest investment.
Software licensed under GPL excludes the problem of scarce resources, because the incentive to improve the software comes from the practical needs of its users. In case of GPL the work done is done forever for everyone — solutions once found are always there to be built upon.