And yeah, it obviously wouldn't work for macros, but macros don't get shadowed by let blocks in the first place.
(mac list-macro args `(list ,@args)) (mac dont-break (a b) `(list-macro ,a ,b)) (let list-macro nil (dont-break 1 2)) => (1 2)
-----