Suppose I'm on Linux, but I want to interact with Windows stuff. (CIFS protocol, NTFS on-disk format, disassembler for Windows executables, Wine-like program, cross-compiler, etc.)
I'll be wanting UTF-16 support. Going the other way matters too; if I'm on Windows I may need UCS-32 support.
Sure. That's not a problem. You can write any kind of string type you want, as a library, and convert between them. One of the nice things about Rust is that it's low-level enough that almost everything is a library anyway, so the language won't get in your way if you need SomeNicheString.
I'll be wanting UTF-16 support. Going the other way matters too; if I'm on Windows I may need UCS-32 support.