Doubtful if it's worth the overhead in practice, even though complete correctness is not to be frowned upon. Hmm. Did strings end up being type annotated with a [lower..upper] bound without extra work penalty? And what code points are we talking about, by the way?
If it can be done inexpensively with a pre- or post-process pass (not changing ordos on the functions in the general case, which IMO ought to be considered "when this code point pair was not represented in the string" here), I'm all for it. :-)