assertが有効(NDEBUGが未定義)な場合は異常終了するのでreturnしない。
assertが無効(NDEBUGが定義済)な場合はreturnする。

問題は、プログラムを異常停止させないために異常な状態に対して無難な値を返す処理により別の問題が起きないかの確認がほとんどできないこと。