There is an "optimization" in the utf8 comparison code for strings where there are no special characters.
Unfortunately the optimization is wrong... It assumes that 'A' < 'a', whereas the Unicode collation code returns 'a' < 'A'. This can cause inconsistent ordering when the optimization is applied to one pair of strings, but not another - causing a fatal crash in the merge sort code (
E.g. all of the following are true - illustrating the inconsistency: