無限ループは、元々正しくないコードなので
本来の目的とするコードに直せば問題なし。

再帰のオーバーフローは、それを回避するための処理を組み込む必要があり
新たに特別な問題回避のためのコードが必要になる。

つまり再帰を採用していること自体が問題だ。