Почему пишут const когда можно написать let?
Ответ прост:
const => ReadOnly на переменную.
let => ReadWrite на переменную.

Причины для защиты переменной от изменения могут быть абсолютно любыми.

1. Как наиболее частое употребление защиты: многократное использование значения константной переменной в разных блоках кода.

2. Иногда, используют как хранилище, используя объект внутри константы. 
Важно помнить: объект внутри константы МОЖНО изменять, но нельзя менять ссылку на него (значение самой константы).

Ну и отрывок из доки:const создаёт константу (новую именованную ссылку на область памяти), доступную только для чтения. Это не означает, что указываемое значение неизменно, но это означает, что идентификатор не может быть переназначен. Например, если константа указывает на объект, то сам объект может быть изменён.

const используется для того, чтобы другой разработчик случайно не изменил значение переменной. Если ты пишешь для себя и прекрасно держишь все в голове, то пиши свой код хоть в одну строку сразу минифицированным). Это становится максимально понятно при разработке крупных проектов. Тоже самое могу сказать, например, про ООП.