Нет, символ, введенный в "лексическое замыкание" макроса, не выводится наружу.
Обратите внимание, что утечка НЕ ОБЯЗАТЕЛЬНО плохая вещь, даже если случайная утечка почти всегда есть. Для одного проекта, над которым я работал, я обнаружил, что макрос, подобный этому, был полезен:
(defmacro ana-and (&rest forms)
(loop for form in (reverse forms)
for completion = form then `(let ((it ,form))
(when it
,completion))
finally (return completion)))
Это позволило мне получить «короткое замыкание» вещей, которые должны быть выполнены в последовательности, с аргументами, перенесенными из предыдущих вызовов в последовательности (и об ошибке, сообщенной при возврате NIL). Конкретный контекст, из которого взят этот код, предназначен для написанного от руки синтаксического анализатора для файла конфигурации, который имеет синтаксис, достаточно скомпонованный достаточно, чтобы написание правильного синтаксического анализатора с использованием генератора синтаксического анализатора было более трудоемким, чем откат вручную.