Sadly, the pervasiveness of JavaScript means that UTF-16 interoperability will be needed as least as long as the Web is alive. JavaScript strings are fundamentally UTF-16. This is why we've tentatively decided to go with UTF-16 in Servo (the experimental browser engine) -- converting to UTF-8 every time text needed to go through the layout engine would kill us in benchmarks.
For new APIs in which legacy interoperability isn't needed, I completely approve of this document.
For new APIs in which legacy interoperability isn't needed, I completely approve of this document.