Discordo quando diz que let e const não funcionam em todos os navegadores, pois o suporte do let e const é de 97% (https://caniuse.com/?search=let) e do const.

Se interpretada ao pé da letra, sua afirmação está correta, porém sabemos que esses 3% são insignificantes e representam aoenas alguns países nais retrogrados e sistemas legados, e não o usuário real da internet.

Um adendo: aqui você fala sobre uma fatia pesada do mercado o Zed não suportar Linux. Na data que publico isso, Linux corresponde à 4,03% dos computadores de mesa.

Tudo depende do contexto. 4% dos computadores pessoais são Linux. Agora dê um zoom e me diga quantos porcento dos computadores de DESENVOLVEDORES (Público algo de uma IDE) usam linux? Se não me fala a memoria esse percentual é 30% segundo a pesquisa do stackoverflow. Se fizermos esse mesmo zoom no publico alvo do site/aplicativo que use const e let, pode ter certeza que na MAIORIA dos casos, esses 3% que não suportam o teu const/let somem.

Você discorda da matemática então. 3% não é insignificante, embora possa ser para seu caso, conforme eu disse, você tem o direito de abrir mão desses usuários, nem todo mundo tem esse poder, esse direito. O grande problema é que as pessoas acham que isso é normal, que pode dar um tapa na cara dessas pessoas, em alguns casos são pessoas em vulnerabilidade. A maioria das pessoas que ignoram essas pessoas nem percebem que estão ignorando, e pode estar perdendo quem pode fazer uma grande diferença.

Você faz um software para 97% dos computadores ou ele é tão bom que funciona em 99,9% deles?

Pense nisso. Sempre que uma tecnologia nova é lançada na web, vão anos (ou décadas) para uma adoção completa. Bundlers/compilers de JS existem (também) para resolver este problema.

Está esquecendo dos pollyfills, que vão atender esses 3%, mesmo que jamais sejam usados.
Por gentileza poderia nos mostrar link desse polyfill?Eu gostaria de dar uma olhada no código fonte para saber como eles resolveram os problemas de sintaxe, semântica, escopo e hoisting que um polyfill dessa natureza provavelmente deva resolver.
Colega augusto, o polyfill é muito simples: ```js source = source.replace(/\b(let)\b/g, 'var'); ``` Espero ter ajudado! *//brincadeira*