да мне всеравно кто что использует. программирование есть программирование. ты пишешь что заполняешь какой то массив на основе каких то входных данных, но не выражаешь это в сигнатуре функции, как это назвать как не говнокод?
Функции, которые дергают внутри себя какие-то глобальные переменные, не принимая параметров и не выдавая статус обработки, вроде бы достаточно давно считаются моветоном (типа использования Goto)
в st_prep_buffer они берут тонну глобалок и мутируют тонну глобалок, хотя могли бы взять конкретный конфиг, конкретный стейт и отдать конкретный массив и вероятно новый стейт, если так приперло