データの不整合でバグになるのは、バグになる原因があるから
それを修正すればいいんですよ。

再帰の場合、データの問題がなくてもバグが無くても
つまりプログラムに問題がなくても
スタックオーバーフローが起こりえるから問題なのです。
こんなものはテストで検出できません。