Холиварный вопрос: почему когда делали продвинутое метапрограммирование не пошли дальше и не сделали его буквальным программированием? А-ля кт функции которые идентичны обычным которые возвращают синтаксическое дерево?
Можно сделать отдельный метаязык, который бы выполнялся на этапе компиляции. Таким образлм, можно гарантировать, что функция точно может быть расчитана в компайл тайме. Можно на него повесить сборку. Можно ему позволить исполнить какой-нибудь бин, который бы выдавал на выходе текстовый файлик, в который он бы распарсил документацию API например, а потом наш метаязык, на его основе, наклепал бы функции.