One can run with boot codes 'base norestore', run xsetup and then save ~/.xsession to persistent storage.
Personally, I have different .xsession files stored with different names, i.e. .xsession.Xvesabase, .xsession.Xvesaextension, .xsession.Xorg.
Thus, I could just copy the one which is adequate to current X server to .xsession when required.
One could proceed similarly when using the same backup on multiple predefined machines with different .xsession files for different machines (e.g. different resolution).