Они оперируют конструкциями и выражениями. Выражение - это все, что имеет значение, и это причина тому, что выражения можно использовать в условиях. Их можно также использовать вкупе с оператором return - это ведь никого не смущает? А выражения в условии for? Стало быть, не должны смущать выражения и в условиях, тем паче, что иногда это очень красиво.