Statement а не expression (результат не передашь сразу в функцию и не вернёшь), больше кода, больше мест для ошибки. Так то можно и на ассемблере писать.
Тут правда согласен. И по опыту раста - мочь все растрактовать как выражение правда красивее и удобнее бывает. Но тут логика такая, что цикл в языке нужен - не все выразишь этой функциональщиной. То есть от условного for не отвертеться. А если у тебя уже есть for для циклов, то и все, давайте не разводить зоопарк и жить с 1 не самым оптимальным, но 1 решением. По логике авторов языка - лучше 1 универсальный способ, чем 2 два пересекающихся. В том же расте и питоне очень часто кто как итерирует, кто мапами, кто циклами - в итоге зоопарк. А тут я не думаю - хочу цикл - пишу for. Такое себе, я согалсен, что это больше минус и как только появятся нормальные дженерики - и тут будет зоопарк, но в остальных вещах эта философия языку больше помогает, чем вредит.