>>486
そんなことないと思うです。
ループに変換される方は末尾再帰と呼びます。
for-each-pair の呼び出しって2箇所あるじゃないですか?
外側のこれ↓
> (for-each-pair f g (cdr pair) (for-each-pair f g (car pair) r))
は終端式だから、末尾再帰になるけど、その内側のこの部分↓
> (for-each-pair f g (car pair) r)
は終端式じゃないから、こっちの呼び出しは末尾再帰にならないってことだと思うです。