Я посмотрел по ссылкам, но не очень понял. Что такое UCS32String мне непонятно.

Зато я другое понял: то, что сделано в КП, реализуется компилятором. И, во-вторых, CHAR это не просто два байта, это всегда одна заданная кодировка. Если же определить CHAR просто как двухбайтную (четырехбайтную) литеру, без уточнения кодировки, то потом возникает неоднозначность в том, что такое ARRAY OF CHAR, в какой кодировке строка внутри этого массива. И тогда компилятору нужды дополнительные указания, как осуществить str := "Keep it simple".

А вы, я вспомнил, не трогаете компилятор, верно? Значит, вам такой подход не подходит.