What caused this mess? Openness and the hacker nature did.
A UI needs a bully: someone who says that you will do text fields this way, and if you don't like it, tough. Consistency is absolutely crucial in a successful UI. In Windows, the bully is Microsoft. In OS X the bully is Apple. Open systems by their very nature don't have a single dictator.
A UI also needs a bully to force simpler designs. X is replete with applications that have every single possible configuration option. It's part of the tradition. The problem is that this makes the applications extraordinarily unfriendly to the 99% of the population who want to get work done, in favor of the 1% hackers who like to tweak. It's a rare X application which doesn't suffer from this malady: indeed X does itself. There's no one to tell these application designers that their propeller-hats are screwed on too tight.
I don't know if there is a way to fix this. Simplicity and consistency are the two most important features of a UI, and the open nature of Linux, X, etc. simply run against them. When a bully arrives to the Linux world (such as Google in Android) you start seeing quality again. Without it, you wind up with Maemo.