The point of creating any software product or introducing new upgrades (rather than merely bugfixing) is to introduce to users new functions and ways of doing previously doable tasks with more efficiency and less waste, as well as enable new methods and activities not previously achievable.
This would seem to make the case that a democratic approach to software development would make sense: let people make more decisions as to what they want, and vote for it. Bees do it all the time. Zerg hives as well. It's a form of swarm theory - nobody sees the big picture, but they have the same interests in general that the decisions that they make wind up being the most efficient.
Swarm theory, unfortunately, only works well if you're THINKING reasonably and looking at it with a reasonable skillset. If not, you need to be able to put your foot down and say 'no' at some point. at some point, giving everyone a say and a veto for everything leads to total sloth in development.
Just ask the people who are waiting for perl 6 how long they've been waiting for their Holy Grail. :( It is not a pretty answer, and contains 300 RFCs since 2000. 6 years plus of waiting for upgrades to a language that is readable only by savants, or severe hair-tearing. 6 years is a long time in Internet years - do you want to wait that long for anything to happen?
I thought not.
Software development will always be a meritocracy or oligarchy (developer/client owned/controlled). Live with it. Let a thousand ideas bloom, and stop trying to hamper other people's ideas with FUD without reasoned analysis.
(Disclaimer: The writer uses more scripting languages and does more graphics/scripting than actual programming languages, but most things that apply in scripting development and graphic design still apply in programming too :( )
"If I listented to people all the time when I was working, nothing would ever get done."