Статическая параметризация тоже имеет свою цену. Но параметризовать в коде программы (динамически ли, статически ли) то, что можно зафиксировать на этапе проектирования - идея не супер. Насчёт генерации метапрограммами - это может выглядеть так, что генерируется только спецификация, а сам код пишется руками. Такое вот ручное метапрограммирование, оно же "путь Оберона".