Minha resposta aqui não é específica do javascript.
Como regra geral, em qualquer idioma que me permita fazer isso de maneira fácil, eu diria que sempre use const / final / readonly / seja lá o que for chamado em seu idioma sempre que possível. A razão é simples, é muito mais fácil raciocinar sobre o código quando está óbvio o que pode mudar e o que não pode mudar. E, além disso, em muitas linguagens você pode obter suporte de ferramenta que diz que você está fazendo algo errado quando atribui acidentalmente a uma variável que você declarou como const.
Voltar e mudar um const para um let é muito simples. E ir const por padrão faz você pensar duas vezes antes de fazer isso. E isso é em muitos casos uma coisa boa.
Quantos erros você viu que envolveram mudanças inesperadas de variáveis? Eu acho muito. Eu sei que a maioria dos bugs que vejo envolvem mudanças inesperadas de estado. Você não vai se livrar de todos esses bugs usando liberalmente const, mas você vai se livrar de muitos deles!
Além disso, muitas linguagens funcionais possuem variáveis imutáveis, onde todas as variáveis são constantes por padrão. Olhe para Erlang, por exemplo, ou F #. Codificar sem atribuição funciona perfeitamente nessas línguas e é uma das muitas razões pelas quais as pessoas adoram programação funcional. Há muito a aprender com essas linguagens sobre o gerenciamento de estado para se tornar um programador melhor.
E tudo começa com ser extremamente liberal com const! ;) São apenas mais dois caracteres para escrever em comparação com let, então vá em frente e const
todas as coisas!