I just started maintaining an old Linux X11 app. A REALLY old app. Some of the function declarations still use K&R. It's all Motif and XT. Looking at it with an eye to modernizing it, well... I guess QT won. Problem is, if I go QT, I pretty much have to drink all the QT kool-aid, since they seem to have tried to re-implement the entire C standard library under their API. Other than that, the field's pretty much right where I left it back in the mid '90's, last time I really looked at X11 programming in a big way. Actually back then GTK and gtkmm were at least looking like promising competitors to QT. Looking around at an even lower level, I can find a rant from Rasterman about imlib being faster than Xrender, and pretty much everyone deciding that OpenGL was a better way to go than Xrender anyway. That's pretty much everything, since 1995.
I think if you want the desktop it's going to take another linux-kernel-level effort around the GUI. The question is do we keep trying to put more band-aids on X11 or do we design something from the ground up that everyone can agree on?