Evaluation of invalid Julia syntax throwing a syntax error is a lot better than mistakes silently doing something different from what the writer thought was possible.
We should. The condition being sometimes true in practice makes that obvious, but even if it were strictly if false, the variables in the body are involved in lexical scoping for consistency. A conditional branch that never executes doesn’t make dead code that can be trivially eliminated, and that’s true across many languages. Sometimes we have to just omit code we don’t need.