>>322みたいにドキュメントを用意して引数の型を丁寧に書くなら型を動的にするメリットがない
じゃあドキュメントを用意しない場合はどうか。

function func(attr){ ... }

int func(File.Attributes attr){ ... }

こんな関数があったら前者は怖くて使えないよね。
何を渡していいのかわからない。何が渡されるのかわからない。
後者なら型情報が全てを物語ってる