Since strings are immutable there is no way they can be reversed in-place, they have to be reversed by creating a new string by concatenation.
n\u0303) are also handled by multiple characters in the raw string but are combined into a single glyph. Combining marks also need to retain their ordering. The esrever algorithm below flips the surrogate pairs and combining mark ordering before doing a basic reversion of the string. This ensures these keep their correct ordering in the final string.