最終行でfalseを返す関数の作り方はやめろと注意されたことがあります。

http://q.hatena.ne.jp/1169893354
最終行でtrueを返さなくちゃいけない、とかfalseで返さなければならない、ということを厳格に考えたことは無いなあ。と書くと、その程度のプログラムしか書いたことが無いからだ、といわれてしまうかもしれないけど。
僕がJavaを書く場合、「プログラミング言語 Java」(ASIN:4894713438)とか、「Effective Java」(ASIN:4894714361)とか、「リファクタリング」(ASIN:4894712288)といった、基本的な本に書いてあるような話とか、現場のコーディング規約に書いてあるような話はきちんと守るように心がける。逆にいえば、そこから「外れた」事を人にいわれた場合、その人が何故そう言うのか、その真意を考える(そして、その人の水準を勝手に測定する)。Javaプログラマが守るべき規範は、この手の本や一般的なコーディング規約によって、ある程度のレベルまで既にできあがっているので、そこについては、「守るべき」と伝えるのは適切だ。このレベルがちゃんと守られないと、メンテナンス不能なソフトウェアができあがってしまう(か、酷いときはソフトウェアが完成しなくなる)からだ。でも、そこから先の(設計というには細か過ぎる)「ソースコードの書き方」については、たいていの場合拘る部分など無く、個々人の思想の話になってくるので、下手に持論を押し付けるべきではないんじゃないかな。
今回の話は、たぶん今回の本3冊には無かったように思うので(うろ覚え)、「どっちでもいい」というのが正直なところ。いいじゃん、JUnitでテストが通ればどちらでも(Javaならば、の話ですが)。合理的な基準もなく、明確な理由もないまま、ただ他人に自分の考えを押し付けるのはよくないと思います。