У меня метапрограммирование больше ассоциируется с шаблонным програмированием (с++), так что наверное я удивился преждевременно и тому, что существует только в моей голове. С макроассемблером (макрописание) я знаком в GNU ASM, в fasm'e интересная реализация всего этого - реально красивый подход. Когда я выбирал какой asm учить, выбрал GAS только потому, что он почти на всех платформах присутствует. Иногда, представляется возможность подсмотреть что да как в других асмах (ну к примеру вот эту ссылку кинули), и реально красивые решения встречаются ))
Взять тот же макрос invoke в примерах для FASM, я подсмотрел(увидел) и запилил для GAS, ну правда ещё в сыром виде (не тподдержки флоатов в аргументах и регистров)...