
Quoting Norbert Zeh
XCB) should not make any difference. However, if you consider how DEs with more focus on eye candy handle desktop switches with or without fancy effects, there is usually no flicker involved, but the basic operation is the same: sets of windows are mapped/unmapped and/or change their positions. So there must be a way to work around this limitation
Changing the desktop is a significantly different operation than changing the layout of all the windows. When changing desktop, you can map all the windows on the new desktop with a higher z-value than any of the windows on the old desktop, then unmap all the windows on the old desktop. The darcs version of xmonad does exactly this on workspace changes (but not the release version). That strategy doesn't work when the layout of all the windows changes, since a window cannot be mapped at two places (and, potentially, sizes!) at once. ~d