* Changing punctuation for visually identical, but different characters. This would not work for printed documents however.
* Encoding only 'believable' typos, e.g. it's its. You could encode a binary stream across all instances of it(')s, or other substitutions.
* Encoding the stream in whitespace, e.g. Two/One spaces after a full stop. Printed documents would be lossy though (as full stops at line endings would be ambiguous). There are error detection/correction systems that can help though.
It would be visually challenging to detect (and also, maybe, difficult for an OCR engine).
I do like your idea about visually similar but distinct character replacement. That would be a really fun one to implement.