How do you switch monitors in windowed mode through xbmcsettings? At least on win32 that's not possible. It's only possible by dragging the whole window to another screen using the mouse but that doesn't change the value of videoscreen.screen (-1 i.e. DM_WINDOWED), videoscreen.resolution (15 i.e. RES_WINDOWED) or videoscreen.screenmode (WINDOW). @jmarshallnz said to only show the prompt if the resolution of the whole screen is changed which is certainly not the case if xbmc is windowed.

I can only test this properly on win32 because (as you said yourself) multi monitor setups don't work on linux. And there the settings show "Fullscreen #1" or "Fullscreen #2" so we in fact expect the user to identify the monitor by an arbitrary integer (so does Windows btw).

Last but not least I'm still not very familiar with the whole screen/resolution code but nobody else seems to look into the problem (and I caused it) so I'm just trying around until I find something that works.
The whole screen/resolution setup is IMO far too complex in the code with 3 settings where videoscreen.screenmode actually covers the value of all of them (and is abused in the GUI to represent the refresh rate setting) and is used everywhere whereas videoscreen.screen and videoscreen.resolution are only really used for GUI representation but still need to be in sync with videoscreen.screenmode. I don't know a better way to do it though.