Звучит как code walker, а это значит, он почти наверняка где-то ошибается, а это плохо. gensym'ы надо ставить более контролируемым образом. Есть with-gensyms, есть once-only, можно и вручную, но subst это опасно.
Список символов заранее определен. Для него генерятся gensym-ы и заменяются в labels и в @body subst-ом. Можно через ридер проверять чтоб они в начале Sexp-а стояли, но мне лень: в документации к макросу четко сказано что пять нестандартных имен в моем макросе значат что-то определенное свое )