> Having to rely so much on recursion for instance adds a lot of complexity.
I’ve written some fairly heavy Rust macro code, and I almost never need recursion— the repetition primitives generally prove sufficient for my needs. What are you doing that needs all the recursion?
But on the other hand it means that people are less inclined to abuse them and they're a lot more hygienic than C-style macros...