I found that if I bind (kbd "s-C-") to a key, it seems to work for buffers, but not for x windows. Until I reverse the order ... (kbd "C-s-"), X windows swallow the key, instead of exwm taking it. This suggests that the code that binds those keys in the xserver is sensitive to modifier order in a way that emacs in general is not. That can cause you to tear your hair out for days on end. Would suggest that the X interaction code either be made to not care about order and/or print an error if there is some requirement for a particular order.
I found that if I bind (kbd "s-C-") to a key, it seems to work for buffers, but not for x windows. Until I reverse the order ... (kbd "C-s-"), X windows swallow the key, instead of exwm taking it. This suggests that the code that binds those keys in the xserver is sensitive to modifier order in a way that emacs in general is not. That can cause you to tear your hair out for days on end. Would suggest that the X interaction code either be made to not care about order and/or print an error if there is some requirement for a particular order.