Я не сторонник усложнений, поэтому over-engineering присекаю на корню, но и супер-"упрощений" - тоже избегаю, т.к. это уходит в другие крайности, где у нас всякие coffeescript'ы изобритают и т.п. чушь.
Если писать с вызовом функции:
И далее другой разраб прибегает, и что-то в функцию вставляет, с ожиданием что она ведь при тесте вызывается - значит всё ок.
Затем прибегает третий, и вставляет условие:
И тут вызов baz'а, стал не стабильным, при этом зависит от пожеланий foo. Третий разраб давай думать, первый скорее всего тоже.
Ну тут они разобрались, и вынесли вызов функции и условие, либо содержимое функции.
Так вот, усложнил ли код первый разраб поставив всё в одну строку? Нет, но усложнил жизнь в будущем.
При этом разница в чтении ну чертовски мизерная, и читаемость двух строк не снижается нифига.
Я стараюсь придерживаться простоты - делаешь дело, не отвлекайся: вызов функции с присвоением - это одно дело. Проверка результата - это другое.