Я бы предположил, что причина была быстрой: массив похож на доступ к символу по индексу, но некоторые символы не помещаются в 16 бит, поэтому он не будет работать ...
Так что если вам все равно приходится работать с особыми случаями, почему бы просто не использовать UTF-8?