Unaware of this thread I have started another one, and have reached this conclusion:
OK, reading through these threads I realise that the damage has already been done by allowing
if
expressions to have different syntax in comprehensions from the basic loops. So we can’t implement this idea without breaking backward compatibility, even taking into account thatif..else
is extremely rarely used infor
loops.