Well, that answered it. Cheers.
Okay, you asked.
* Stability. Possibly not fair of me as it may have improved since I last used it, but the X server is a core system component, its stability is vital.
On a desktop box it is as important as the kernel. I was not well pleased when X started to crash like I hadn't seen in years, just-about the time these "improvements" started coming in.
* hal and dbus. They both use XML. Dude, what?
XML is monstrously and grotesquely inefficient. It's very inefficient for the computer to parse and
far less readable for humans than many formats which were in use 20-30 years ago! How ridiculous! It's also rare for XML to inflate data size by less than 4 times and not unheard of for it to inflate data as much as 100 times beyond what's needed. Entirely apart from XML's issues there's DBUS itself, which I haven't looked at myself but I heard from someone who I trust to keep me from wasting my time: "sure DBUS does a useful job, but why would anyone do it that way?"
* libxcb. Back when I was helping out with a linux distro, the sparkling geniuses in charge of this project made an ABI-breaking change to the distributed source code without changing the version. Now in a "leaf node", a package nothing else depended on, such a change would be nuisance enough. When this mistake was made xlib already depended on libxcb. Recall what I said about the X server being as important as the kernel in desktop systems? By the same token, the X libraries are about as important as libc. This change meant more than half the system needed to be recompiled, and without a change in the version number no-one knew whether they had the old or the new libxcb! As far as I know
they only made the mistake once; I got out of Linux distro work shortly after it happened, but even as one single mistake this was very very near unforgivable.