Quite a few of the choices are there because any application developer is forced to make choices from all the choices already out there.
Lets say I want an application with features XYZ. I go looking and find a large number of application with feature X, a large number of application with feature Y, a large number with feature Z. However, as the applications are spread out across different framework, GUIs, distros, personal coding styles and whatever, and since standarization is for suckers, I have a hard time finding an application with even two of my features, and there is no way in hell I will be able to find on with all three.
So.. there's nothing else for me to do than set out to make the application myself, and I as the developer have to make the choices about GUIs, frameworks and whatever. and since I want my application of choice to be far superior to the others, I read up on them all before I make the decision. A pretty time-consuming affair, but hey...I want my application to be far superior to the others. And after a lot of reading, a little bit of coding, and lots of swearing and bugfixing I finally get there: The oh so wonderfully superior BwashedXYZ.
Sensibly, I put it out there in the public for everyone to enjoy, and pat my shoulder knowing I've made the world a better place. Now anyone on distro A, using GUI B, with backends C,D,E,F and G installed, can tweak this to work on their H1 hardware (H2,H3,H4,...,Hn hardware doesn't work unfortunately since the manufacurers are suckers and cant provide drivers for this particular setup). I open open a bottle of champagne and prepare myself for the enormous amount of mail and gratefulness I'm about to receive
Those mails of course never reach my inbox. Due to lack of standarization I've created a product that is usable for a fraction of those 1% who chose to use GNU/Linux in the first place. Thousands of geeks cheer in harmony for another package in the distribution A repository, but unfortunately that happened to be a totally different thousands of people to my thousand of people: The thousands that would benefit from my XYZ application. I investigate and find that in my thousands of people I find tens of people using GNU/Linux(1%) and ones of people being bothered installing backend C (10% of the 1%). None of the latter had hardware H1
I'm all for free choice and the benefits of having competing products,but it has to be complemented by other things to work optimally. Some times one is just so much better off just deciding on some standard so that we all can use our creative energy WHERE IT MATTERS in stead of re-inventing wheels.
hmm... Maybe I should write this post in ancient Greek. I've heard it's such a superior language to express thoughts..