>  i wouldn't allow non-boolean expressions in conditionals; it just adds special corner-cases to the language (like what values are "falsy" and whether that behaviour can be overriden, etc).

Agreed.