Тут проблема в том, что при использовании car/cdr и прочего неудобно отлавливать конец списка. Это обычно в рекурсиях требуется. А по схемной идеологии нагляднее какой-нибудь map и т.п. использовать по спискам гонять +)
Ну да, поэтому я сразу и сказал, что можно или макрос накидать, или какую-нибудь мегафукнцию (my-cool-cdr lst) которые будут уже внутри на предмет пустого списка првоерять