> However, recently -- I can't be sure exactly when, I have > started finding that those key swaps are undone [...]
Newer versions of Xorg recognize keyboards dynamically. Is it possible that your xmodmap is executed before the keyboard is initialized (with default settings)? Try adding a line xmessage 'press some keys to initialize keyboard' before the xmodmap in your .xinitrc and/or .xsession to see if that makes a difference.
