I _finally_ seem to have a way to work around the issue.
I tend to be impatient, so while something like Visual Studio is loading a large project I will change to the desktop with mail to check mail, flickr across to the desktop with the browser to check gmail, etc. etc.
I have all the common applications I used assigned to particular desktops (I use 6 in a grid).
I think the combination of that setup and my behaviour results in dexpot losing track of the desktop an app's window should be on (can happen to a subset of open windows for an app), and the window ends up without a valid desktop.
If I restrain myself from changing desktops while an app is performing a long operation (like starting up, but not just limited to that), things are better, but not perfect.
With the following setup I just got through a whole day without losing a window (having it disappear down to below the bottom right of the screen, or into the nether regions of being visible but not selectable). Generally I'm restarting apps or Dexpot probably 6 or more times a day without this change.
Under Settings -> Plugins and Extras, in 'Behaviour of windows on other desktops' set 'When activating a window on another desktop' to 'Do nothing'.