Once you've created a seam (possibly a unix socket, many of my designs rely on those) exposing the same socket over TCP becomes relatively trivial and now you effectively have network transparency anyway (see also spiped).
But, yeah, so long as the client is a separate process, getting it transited over the network can be done separately.
Agreed, though exposing/using a bare TCP socket comes with security responsibilities that you are forced to address -- it's good to devolve those.
See also: spiped
Heh, reminded me of running Internet Explorer and Outlook Express on a university Solaris box and had it displaying at home on an OpenBSD laptop...
(yes, IE & Outlook had UNIX versions: https://en.wikipedia.org/wiki/Internet_Explorer_for_UNIX)
The way X clients can be forwarded over SSH implies that network transparency doesn't need to be built in to the window system, there just needs to be a "seam" at which it can be interposed. Obviously any kind of direct access to graphics hardware makes this impractical.
Plan 9's window system uses the 9p file system protocol to cross the network; another Bell Labs trick (used in Rob Pike's Sam editor) is for the app to be split into two parts with their own internal interface. They can run on different hosts. The internal protocol/interface can be tailored to the app (and can potentially be very simple and/or efficient).