We have more space to work with for a strongly normalizing type (the strawman named std::text). I would prefer that views have no functions attached, just algorithms that operate on correctly shaped ranges. We got the strictly necessary constructor for string_view, so we can get back to std::string and null termination if someone has to.
I'd also like to see the unicode algorithms as _algorithms_ that can operate over something that can be treated as a scalar value.
If we had Contracts I might feel differently about a strong scalar value type, but without them, introducing an intermediate type is more likely to just cause needless casting without improving correctness.
I also have concerns about the compiler doing the fusion of conversion of utf-8 into the unicode algorithms. Writing SIMD friendly versions, which can be insanely fast, is important. I know this contradicts my general position on algorithms.