Mmmm, good thought.
I tested it, and you're right:
However, the code I use to set up the substitution is:
which has been working.
If I change it to test your theory, to be:
then it does not find any CRLR to substitute.
So Xreplace has a different meaning for \r and \n depending on whether it is the source or the target of the substitution.