Есть еще и другая причина: на выражение if(1){...} компиляторы обычно ругаются (выдают warning). По той же причине условные операторы от константного выражения не приветствуются, поскольку здесь компилятору сложно решить, выдавать ему warning или нет.