bttextcmp() and other varstr_cmp() callers fall afoul of the same restriction with their "could not convert string to UTF-16" errors (https://postgr.es/m/CADyhKSXPwrUv%2B9LtqPAQ_gyZTv4hYbr2KwqBxcs6a3Vee1jBLQ%40mail.gmail.com). Leaking the binary fact that an unspecified string contains an unspecified rare Unicode character is not a serious leak, however. Also, those errors would be a substantial usability impediment if they happened much in practice; you couldn't index affected values.
I'm confused. What characters cannot be represented in UTF-16?