Я не смотрел реализацию, но вроде там отдельный модуль. Есть порты utf8 под более ранние версии Lua, легко гуглится. Это гисты на 1к+ loc (которые прямо не хочется тащить в свой плагин/конфиг).
Вообще проблемы с юникодом начинаются ещё на этапе его извлечения из текста, при помощи вимскрипта или Lua API. Я намучался с этими позициями в тексте.