You know I would be happy if the Linux community produced one working desktop environment instead of 2-10 different versions for each component depending on how difficult that component is to implement.
Most GUI tracks on GNU/Linux conferences are about low level details how to make certain drivers work, ongoing XWindows refactorings, or refactorings on GUI libraries.
So it is clear which tech do eventually GUI focused developers go to.
Maybe the annoyances are from the lack of a core desktop experience/"interface" (not talking about GUI) that feels familiar (especially for new users). I bet it also scares developers from other platforms and commercial initiatives. I'm all in for freedom but a "default stack" is desperately needed.
If not, we'd all be using OS/2 on IBM PCs instead of Windows, Macs, Linux, etc.