Code generation is just external macros; it's the same thing in a worse form.
To maintain the code, you have to understand the input language to the code generator and its metaprogramming constructs. You're no better off in that regard.
The grandparent comment is saying that if you don't give people metaprogramming built-in, they will resort to outboard metaprogramming.
code generators are programs written in an existing programming language, which produce target language source code as output
macros are programs written in a separate, unique, often turing-complete meta-language, which is implemented entirely in the compile phase of the language which supports them
To maintain the code, you have to understand the input language to the code generator and its metaprogramming constructs. You're no better off in that regard.
The grandparent comment is saying that if you don't give people metaprogramming built-in, they will resort to outboard metaprogramming.
I.e. you can't stop people from metaprogramming.