Fortunately X can do better than that---I have run 3D X clients using *faster* on a remote server with better 3D acceleration (and more CPU and faster memory). Any ideas of making the remote client do software rendering on the slower remote system would be a huge step in the wrong direction.
NX takes doing work on the *server* side much further: it does extensive server side caching and has amazing performance other links with high latency and low bandwidth.
X has its faults but storing things on the server so things like cut paste between clients running on different boxes work is not one of them. Nor is allowing clients to actually use the acceleration available on the server.