バグがどこに潜むのか、ってのが問題でしょ。

静的な型システムがバグの検出に役立つってのは、
関数の戻り値を型の異なる変数に代入しようとしたりするのを
コンパイラが検出できるってことだよね?

ある変数に対する代入が1回しか行われないなら、
その変数に格納される値の型は一意に決定できるわけでしょ。
でもって、あらゆる関数の戻り値の型が一意だとしたら、
変数の型を宣言することは冗長だよね。

型なし言語でも自衛することはできるって話です。

# もちろん必要があって様々な型をとる変数を使うのは
# いいんですよ。そこが急所だってこともわかってるだ
# ろうし。