Macros aren't so much syntax as they are semantics (inlined for performance, but we can still think of them as special procedure calls). Lisp has been relatively successful in its various forms, it should get some credit.
The DEFCLASS macro implementation will check some of that automatically, but much of the syntax has to be check by the macro in the implementation code.
> we can still think of them as special procedure calls