Здравствуйте, so5team, Вы писали:
S>можно наделить понятие "макроса" еще 100500 дополнительными смыслами.
Нет надобности его чем-то "наделять".

Оно
изначально предельно общее, буквально вытекающее из смысла слова "macro" (надеюсь, найдете самостоятельно). И оно испокон веку обозначало все, что подпадает под технологию "сгенерировать результат из указанной текстовой конструкции". Ну а потом выросли поколения, которые уже знали макросы исключительно по их реализациив в C/C++, m4 и подобных средствах, а про иные способы реализации даже не догадывались, и стали придумывать разные
искусственные разделения.
Настаивая на том, чтоб называть обработку текста программ, выходящую за пределы чисто лексической, непременно "метапрограммированием", а термина "макрос" в данном контексте избегать, попробуйте представить, как будет выглядеть реализация языка с подобным разделением. Вот надо Вам сделать
почти чисто текстовую подстановку, но так, чтоб текст содержал, скажем, имя текущей функции. Сейчас для этого есть встроенные макросы вроде __FUNCTION__, но это уже читерство —
препроцессор (которым, по-Вашему, обязан быть
любой макропроцессор) ни о каких функциях не знает. А в "метаконструкциях для рефлексии" Вам предложат богатый инструментарий для манипуляции типами, объектами, перебора методов классов и т.п., но банальной склейки двух подстрок не дадут, ибо это уже "типичная макрооперация", пожалте в препроцессор. И будете опять изворачиваться в попытках скрестить ежа с ужом, как тот комсомолец, который не может без трудностей.