※私は67,83じゃないです。

> と書いてあるからには、関数 Foo() の戻り値の型は Boolean なんだよね ?
そう、まさにここが重要なのです。関数の戻り値が分からない。
単に書き忘れなのかもしれないし、意図したことなのかもしれない。
プロジェクト全体で完全に決まっており、全ての人が完全に守っているのなら
問題ないけど、現にあなたはここで混乱しましたね。
だから、=True/Falseを省略するのは書き忘れ。修正すべき。という理由になるのです。

ところで、
If Compare(a, b) Thenというのをどのように解釈する?
について誰か答えてくれないかなぁ。結構面白い問題だと思うんだけど。