Yeah, it seems like, "let the programmer do whatever the want, no matter how silly it seems, because they might actually have a valid reason" drove a non-trivial amount of Arc design.
This sort of "programmer power" is similar to what you get in C. You can't redefine the language with C, but you can do some pretty nasty things if you want to. Or even if you make a subtle, honest mistake. Or even if you use C at all. ;-)
Looks like unhygienic macros was quite purposeful, not something being put off until later.
The issue with them is surprises with variable names; Arc addresses this by letting creating unique variable names for you in macros, if you request it. (See (uniq) in the tutorial.)