うーん、はまった。
(defun foo (function)
(funcall function))
(defun bar (function)
(foo (lambda () (funcall function))))
(bar (lambda () (print "hoge")))
→(error "Lisp nesting exceeds max-lisp-eval-depth")
ここまで短くすればすぐわかるけど、実際はもっとゴチャゴチャなので、
なぜ動かないのかしばらくわからなかった。
せめて仮引数くらいは lexical scope キボン。