3D works, unless the app checks for direct rendering and dies otherwise. Most I've tried do that. The bandwidth requirements for video on the side of a rotating cube are kinda a problem still. And currently GLX ties you to Xlib and all its unhideable round-trips. IIRC, there's a Google SoC project on that aspect, so there's hope. But 3D also is a pain for virtualization, so I'm holding out hope that the issues will resolve themselves with time.
The font problem isn't technical, it's licensing. If you want more than bitmaps in the US, you need the appropriate license for the font. Elsewhere, the font needs licensed regardless of use pre- or post-rendering. There are good, free fonts now, but I'm sure you know apps that aren't agreeable to using anything but their pre-defined, proprietary fonts. Again, these issues could be managed, but they're a pain. Just configuring font matching is enough of a pain, anyways (not a dig, it's a difficult problem).
A VNC-like proxy sidesteps most of these. An NX proxy, well, it still runs into problems with heavy graphics (scientific visualizations, how I use it), but it does make network use feasible again.