Here's my current thinking: https://github.com/akkartik/wart/blob/aec0af2676/082macex.wa...
"these syntaxes actually have a special tendency to let sugar accumulate, driving them away from the ideal "tiny expressions" case."
Definitely. The wart example you gave is indeed legal, but the actual _ expression is still simple, even though the chain is long.
It seems nested expressions often work fine because each macro only wraps its arg and leaves the rest to the inside.
(zap (map car._ _) (list list.1 list.2) => (zap (fn(_) (map car._ _)) ..) => (zap (fn(_) (map (fn(_) car._) _)) ..)
Some other concrete examples I came up with of the problems you pointed out:
(zap (cons? & (fn(_) ..)) ..) # broken by nested scope (zap (cons? & (fn(x) (+ '_ car.x)) ..) # broken by quoting