Поэтому я и ранее спрашивал - вас беспокоят накладные расходы или дело в принципиальных архитектурных особенностях? Создаётся впечатление, что последнее, и тогда это более интересно, но конкретики не предоставляется.

Как по мне, и в ООП нежелательно "создавать в куче" объект, который не содержит данных, потому что в этом нет никакой необходимости, как и иметь лишние косвенности для объектов с одним методом. И не менее важна область применимости косвенных вызовов - они вообще нежелательны там, где идёт борьба за скорость (а иногда и за корректность). Косвенность времени исполнения хороша лишь для относительно крупноузловой сборки.
ООП на процедурных переменных часто тоже совсем не чемпион в производительности из-за необходимости лишнего приведения обобщённого контекста к конкретному.