Just a quick though.
Ted Harding:
However, this does depend on the existence of a mechanism for sending such a message. I'm pretty sure there's no such thing in X generally, though I can see how one might program a particular app to respond in this way if it received a certain interrupt.
Surely it would need to be done via the X events? If it's not there, it's not there... possibly sending some sort of EWMH message could do it, but then you rely on client support again and many clients can't even follow the existing specs properly.
Another marvellous utility which I /have/ used is "xmx" ("X multiplexer"), though it's a good while since I picked it up -- I don't know whether it's still around, still less whether it has moved on.
Now, the problem with VNC is that your display of that machine's windows are in a desktop window entirely and you can't really mix them in with your own. If you can run xmx on a disconnectable display, like an xvnc server or an Xvfb one, then you could possibly do what you're asking? This depends on xmx still existing, allowing you to connect and disconnect guests while it's running, and you probably still have the colour depth to worry about.