That's a good idea. I could ease the restriction on the target being empty to allow the move if the target is a redirect to the source page, with no other content and no history.
Sometimes redirects have histories (there were two articles on a
topic, then
they were merged and one turned into a redirect). In that case, the two histories should be exchanged. Can you do that?
The redirects created by the "move" function will not, because it will have been non-existent. If there's history on both ends, then you'll just have to swap content the old fashioned way.