If you claim to support Unicode, you have to support NULL characters; otherwise, you support a subset.
I find most OS utilities that "accept" Unicode fail to accept the NULL character.
FWIW, UTF-8 has a few invalid characters (characters that can never appear in a valid UTF-8 string). Any one of them could be used as an "end of string" terminator if so desired, for situations where the string length is not known up front.
We could even standardize which one (hint hint). I suggest -1 (all 1s).
UPDATE: I meant "strange" as in "surprising", especially for those coming from a C background, like me.