В идеале, каждый кусок кода должен делать одно. Заставить его делать больше, чем одна вещь, может сбить с толку, а запутать - это то, чего вы не хотите в своем коде.
Код в условии оператора if должен генерировать логическое значение. Задача с присвоением значения заставляет его делать две вещи, что обычно плохо.
Более того, люди ожидают, что условия будут просто условиями, и часто смотрят на них, когда получают представление о том, что делает код. Они не все тщательно разбирают, пока не решат, что им нужно.
Отметьте это в коде, который я проверяю, и я отмечу его как дефект.