Your point doesn't stand for UTF-16 either. It's not a fixed length encoding either. It's broken in UTF-16 as well.
It was always O(n).
Of course assuming you aren't using UTF-32, which has its own set of problems (BE or LE), and sees little usage outside of China.