Ну злоупотреблять тоже не стоит, но let только при крайней необходимости должно появляться, как мне кажется, тогда читая код ты сразу понимаешь, что let не от балды написано и надо смотреть внимательнее, т.к. значение переменной где-то меняется. А вообще мне в практике let приходится использовать только, чтобы код красивее выглядел, например, чтобы в функции был 1 return.
В циклах тоже не используете ?