何でもかんでも末尾再帰で書く理由は自動プログラミング
出力されるコードが末尾再帰になるようにプログラムを帰納するテクニックがある

別の言い方をすると、出力の一覧を見てコードを書くときに、頭を使わずに同じ手順でコードを書くときは、末尾再帰の方が楽な場合がある
(手は猛烈に動かすが、頭は使わないという意味で)