> As far as I can tell from Kernighan and Cherry[1], eqn's "define"s > aren't parameterized at all. The groff eqn(1) man page claims to > document (only) extensions to classical eqn, but I don't see this > extension described there.
It actually does: in subsection "Macros": Macros Macros can take arguments. In a macro body, $n where n is between 1 and 9, is replaced by the nth argument if the macro is called with arguments; if there are fewer than n arguments, it is replaced by nothing. A word containing a left parenthesis where the part of the word before the left parenthesis has been defined using the define command is recognized as a macro call with arguments; characters following the left parenthesis up to a matching right parenthesis are treated as comma-separated arguments; commas inside nested parentheses do not terminate an argument. So it does mention grouping with parentheses being understood, but it says nothing about understanding "strings" delimited by quotes.