I find this confusing, or perhaps confused? In my experience, XDMCP
has nothing to do with redrawing or keeping track of windows or any
such thing: It is just a very simple protocol (that's the P in XDMCP)
for an X server to ask some display manager if it wishes to, uh,
manage a display, and for said display manager to respond and get a
login session going. The classic case is the standard X11 program
xdm, which does nothing more than set up a cookie, present a login
screen, and then start the user's .xsession script (or a default one),
after which it gets out of the way. All the heavy lifting is done by
the X clients and the X server, independently of what means were
originally employed to get the session started. In particular, the
questions of if and when the X server needs to ask a client to redraw
a window is totally up to these two programs to negotiate: The client
can ask for backing store, which the server may or may not give it.
If it does, the client will never see an expose event, and so never
needs to redraw anything. This may happen even if the client doesn't
ask for backing store; as far as I can tell, Xquartz never sends
expose events, at least not on my laptop.