I came back to take a look after all the reddit stuff. Genuinely surprised to see people are still here.
A pace is traditionally two steps. http://en.wikipedia.org/wiki/Pace_(length)
... except that the application does have to worry about drawing itself.
Unless the app wants to look like something from 1987, it has to render all its own controls, icons, heck it even has to open the true-type font file, load the true-type interpreter, rasterise all its own font strings and send them as bitmaps to the X-server over a socket. There's so much stuff on the client-side, it's completely braindead. Just think how many times your computer loads bitstream-vera-sans.ttf. How many times should it load it? How many times does libgnome load its gnome icon cache?
Someone needs to make an XGTK extension that puts GTK object rendering in a module in the server. Then the client only needs to worry about making remote GTK objects. For example, gnome-calculator could make a display object, a dozen button objects, and register for clicks. Then all the gnome-calculator *process* needs to worry about is doing sums. It should be helloworld.c in size, not 128 KiB.
The good news is this could be done relatively easily within X's framework. The bad news it, no-one seems to care about fixing it.