option strict でも未定義関数の呼び出しはチェックしませんよね。
互いに呼び出しあうような f と g があったとすると
def f
g
end
def g
f
end
どっちを先に書いても、未定義関数を呼び出すことになってしまいます。
しかも回避方法が存在しない。
option strict が未定義関数チェックをしないのは、もしかしたらこれが理由かもしれませんね。
同じワンパスコンパイラである Pascal ではこれを解決するために forward という命令を用意して、
forward g
で g という関数を前もって宣言できるようになっています。