二つ目の「文字列==数値」が3になる現象は、バージョン3.10からの挙動だそうです。 それまでは文法エラーだったので、あまりオススメできません。 関数内で DIM ARY$[0] みたいに型に応じたコードを書かなくて済むなら、ナツキさんの言うように引数の型は実行時に任せられますので、型の判定も必要ないと思います。