It hasn't won in the market place -- and it won't -- primarily due to the fact that the coupling between funding and licensing is so indirect -- it's very difficult to earn a high margin on writing GPL licensed code, and most revenue models require an indirect and complex approach to earning money from the software without charging directly for the software itself.
(Yes, you can charge for GPL software. No, that's not a sustainable business model. No, RedHat is not a counter-example. RedHat charges for support and their trademarks, not the software itself, and in doing so appeals to a very specific niche enterprise market.)
http://news.ycombinator.com/item?id=211736
Red Hat is a cop-out example. Why not talk about SourceFire, Sleepycat, Splunk, Hyperic, Zimbra, and Astaro? These are all companies that sell software, GPL their code, and are (or were, before lucrative aquisition) extremely successful. SourceFire IPO'd off their GPL package; the company's name comes from the fact that they're open source.
All selling services and products around a very specific type of software, selling to a very specific market niche, leveraging both trademarks and non-GPL licensing to do so.
They're not selling the GPL software itself.
Take your Sourcefire example. They fund development by selling proprietary hardware and proprietary licensed IDS rulesets under trademarked names to an enterprise market niche.
It's also not true that all successful open-source companies sell to enterprises. Tenable sells Nessus to consultants. Sleepycat sold Berkeley DB to OEMs and developers. Automattic certainly doesn't sell Wordpress to enterprises.
Enterprise services.
The fact that they're also not actually selling GPL software (ie, an indirect business model), this all doesn't really disprove my point -- or the original authors.
Any encouraging of upstream communication comes from the difficulty of keeping up with a fork and the knowledge that most code is a liability not an asset. The GPL only pushes you that way indirectly.
Of course there is the other side of the coin where I haven't used a library I really wanted to use because I couldn't GPL my app.