(I make a living working on an open source project.) I don't agree. The view of the value of software is just different. The software itself is valueless. This is true of all software: bits are free to copy. What is valuable is the work put into making it. In other words, you get paid for making something, not for having made something. If a company wants some feature implemented in some piece of OSS, they can go find a dev to pay to do it, and contribute it back to the world. There's no generosity there, it's just an accurate reflection of where value is actually generated in the software world, instead of the broken view that proprietary software tries to force.
Where it starts to get tricky is kind of a tragedy of the commons situation: if you wait long enough, then maybe someone else will pay to implement the feature, but if everyone does this, then the feature will never exist.
But for complex projects those barriers will probably always be quite high.
* "Simple" is a slippery concept. I find hacking Haskell easier than hacking Python, because the type signatures and other features make it much easier to see what's going on with a minimum of investigative work. But difficulty is a big part of Haskell's reputation, and ease a big part of Python's.
The hard thing here is truly free / open source software relies on generosity. And the more generosity, the more sustainable it is (on behalf of the developer(s), the corporations using it, etc.).
Generosity is not a winning strategy in corporate board rooms, though.