Приведу пример кода, который ярко демонстрирует отличие let от var:
for (var i=0; i<3; i++) {
setTimeout(function() {
console.log(i);
}, 1);
}
в этом случаем мы в консоли увидем: «3», 3 раза.
Заменим var на let:
for (let i=0; i<3; i++) {
setTimeout(function() {
console.log(i);
}, 1);
}
в этом случаем мы в консоли увидем: «0, 1, 2».
Такого же эффекта мы бы могли добиться, добавив замыкание в 1м примере, но код будет уже другой.
В общем на вопрос: «Можно ли не глядя заменить все var на let (или const)?», я бы ответил — нельзя!