Not really, and the code involved here is rather small, I'm only addressing
conversions.
Fancy stuff definitely should be handled by a library, such as the utf8proc
that Julia already uses (although I have some serious reservations about
that, after having dug into it,
and fixed some serious encoding problems with it, as well as having seen
some benchmark results comparing it to ICU).
There is a ICU.jl wrapper, which I haven't tried yet, but since ICU always
wants UTF-16 strings, and Julia's default is UTF-8, fixing and speeding up
the conversions
between UTF-8 <-> UTF-16 is even more important.