I think lots of systems are using UTF8 internally because adding support for widestrings is a *lot* of work... and for a lot of string operations it doesn't matter that much, for instance regexps.
I wildly disagree with the regexp example (character classes and UTF8 just don't blend at all, for instance), though you are probably right about your "more effort than we care for" guess.