setDesktop is an important internal API with a given contract: setting
the desktop to a specific desktop. It does not mean adding a desktop.
setDesktop is used by internal API such as sendClientToDesktop. The
intention of such code is pretty clear, it's not to add a client to a
desktop.
If we want additional API for setting a client to multiple desktop we
should add it, not abuse existing internal api.