Да, варарги принимает io.write, но только строчные аргументы можно передавать, ну или числовые. Это хоть и избавляет со стороны луёв от лишней конкатинации, но добавляет ровно столько же IO операций по записи, сколько аргументов передано было. Я вообще об этом случайно узнал пару лет назад, когда решил посмотреть, как работает функция io.write в целом.
Смотрю на скрин и думается мне: насколько же отвратителен этот луа-код. А потом присмотрелся, и понял, что все норм. Это же сишка!