末尾呼出の最適化は規格で決まってることだから要するに積極的に活用しろってことだよね。

処理系を実装する側も出現頻度の高い (典型的である) パターンから重点的に最適化する。
処理系のユーザーがよかれと思って小細工してもそのパターンから外れて逆効果ってのはよくあることなので、
細かいところは気にせず普通な書き方で書いた方がいい。

あとは GC の発生頻度を低くするのが定石かな。 一端確保したオブジェクトを使い回すとかして。
GC は割と重い処理なんだよ。
但し、「GC の発生頻度を低く」ばかりを意識していると「典型的なパターン」からずれてしまうこともあるので、
そのあたりのバランスは様子を見ながら。