Все что на вершине функции объявляется как var, все что inner block scoped как let. На самом деле в итоге разницы никакой. это просто небольшие оптимизации для компилятора (именно фронтовой его части). В реальном коде так заморациватьс яне стоит
А еще TimSort извесен сербездной деградацией производительности при определенном наборе данных. Но это прямо очень редкий кейс и может быть связан все же с особенностями некоторых реализаций
Народ пользуется и сопровождает. Там самое важное это пожалуй интерпретатор и wasm2c хотя wasm2wat и wat2wasm тоже довольно нужная вещь и куда чаще используемая