The macro recursion limit is pretty annoying. For one thing, if you have a deeply recursive macro, this pushes a burden onto your client crates: they all have to manually annotate themselves with a high recursion limit. Also, I’ve never really seen this catch an actual infinite recursion in practice.
I think the way I would like it to work is this: the default is perhaps to have a low recursion limit. But you can annotate a macro definition with some simple annotation to raise the bar. This will make the limit something very high (maybe even infinity, not sure what happens we actually overflow the stack right now, crash?). During macro expansion, if we are expanding a macro with an associated limit, we will ignore the crate’s local limit and use this very high limit instead.