You can absolutely do this in i3 or sway. There aren't default keybindings for doing it, but it is easy to set up your own. I set $mod+equals to 'move workspace to output up' in i3 (or something like that -- I'm not on that machine to check). This works for me since I set up my external display to be above the laptop screen, so it effectively means 'move this workspace to the other output'. You could also specify a specific output to move to, or change what the direction is.
That's not quite what's being asked for. I think it's more like super+1 for "move workspace 1 to the current monitor". I haven't quite figured out how to do that in sway, although I'm pretty new with it.
In my scheme that move is just two key combos away, which seems fine to me, especially since it is rarely what I want. You could make it one key combo if you want, too, in a script if not in a single line.
I used to do stuff like this back in the day with Fvwm2, but less at the desktop level and more at the application level. You can set applications (windows really, and by title or id) to either be sticky to desktop or screen, etc. I had my mail client follow me no matter the virtual desktop I was on, but let other windows be anchored to the virtual desktop.
Honestly, I often miss Fvwm2 and my config in its power and simplicity, but Windows long ago became "good enough" and since the heavy apps I really care about (mail client, browser, maybe an IDE if I'm not using vim for the project) are cross platform (which they all are), as long as there's a good SSH client I'm good, and Windows Terminal plus built in OpenSSH shipped with windows works fairly well.
The other half is allowing the selection to come from a pool of desktops/workspaces common to all screens. i.e. the opposite of what i3 and Sway do.
So given desktops/workspaces a, b and c and screens 1 and 2, the following combinations are possible:
1: a; 2: b
1: a; 2: a
1: c; 2: a
...