Не, так не пойдёт, потому что у меня есть процедуры, которым на вход нужен UTF8 (например, ввод-вывод текстовых потоков), а есть - которым нужен UTF32 (например, текстовый редактор), это зависит от места применения, а не от содержания текста. В частности, парсер для редактора требует UTF32, и сейчас в нём конструируется море литералов в UTF-8 (таблица ключевых слов и встроенных функций), которые потом функциями преобразуются к UTF32, с лишней нагрузкой на кучу.