But also just legacy:
[string] is UTF16, and it's .Length is in [char] not code points or graphemes.
.NET 5 updated helpers (System.Globalization.StringInfo and friends) to be UAX compatible, but Windows PowerShell is v4 which is almost a decade older, and doesn't know about ZWJ and 0xFE0F combining emoji (for instance):