Neither let nor even const are immutable (const prevents reassignment but not mutation if the value is of a mutable type like object or array).
const + Object.freeze is a lot to remember and cumbersome to use throughout a codebase, very relevant to Carmack's wish for immutability by default. I'm grateful Rust opted for that default.