Я помню был какой-то похожий спор с твоим участием (кажется в тематике), где в итоге обнаружилось, что std::function не уступает Dшным замыканиям
Да, я тоже что-то такое помню, но также помню, что там был некий вырожденный случай, когда весь код в одном файле и компилятору дрступен весь код сразу. Но если вынести код с std::function в другие единицы трансляции, то аллокации в принципе неизбежны.