Непопулярные особенности специальных переменных включают в себя:
- Отсутствие ссылочной прозрачности
Это усложняет функциональные рассуждения о вашем коде. Это означает, что ваша функция дает разные результаты с синтаксически эквивалентными вызовами.
Если где-то в вашем коде определена лексическая переменная (например, в системной функции), вы перезапишете ее и вызовете ошибки.
Специальная (динамическая) привязка непопулярна и приведет в замешательство ваших читателей, которые не знакомы с ней.
Просто используйте лексическое связывание или даже анафорические макросы.
Дополнительная информация:
Анафорические макросы См. «Пусть больше лямбда» Дуга Хойта, или анафорические макросы Пола Грэма.
В LiSP (Lisp in Small Pieces) есть раздел о связывании и динамическом связывании
Elisp имеет динамическое связывание по умолчанию и принудительное динамическое связывание в течение длительного времени
Многие ранние лиспы имели динамическое связывание, но отбрасывали его.