文法的にどう解釈するか難しいからじゃない?
0 < a < 5
(0 < a) < 5
(真偽値) < 5
と解釈するのが普通だから、普通と異なる処理を行わざるを得ない