It actually skips whitespace, control characters and surrogate pairs [0].
[0] https://github.com/rottytooth/rot8000/blob/main/Rottytooth.R...
But anyway ROT in itself is a pretty stupid idea anyway, usually just done for show.
> It is used to enclose the text in a sealed wrapper that the reader must choose to open - e.g. for posting things that might offend some readers, or spoilers.
AFAIK, this has been a common use of ROT13 since the 1980s. It also preserves substring search and message length (unlike BaseN encodings), which are occasionally useful properties.
In cryptography circles it seems to be kind of a running joke ("just use ROT13 encryption and you'll be set!" is something I've seen several times) ;) I know it was never intended to be secure.
But it makes sense then.
Of course if you work with ROT13 a lot, you will probably gain the ability to read it just by viewing the ROT'd code, defeating its purpose :) The structure of words also gives away a lot, since it doesn't affect spaces, capitalisation or punctuation. I still don't think it's very good at this usecase either.
How do you figure? It feels like the simplest way to handle eg spoilers in a universally portable and widely-recognizable way.