Browsing around the Swift docs, I see that they encourage the use of immutable values in let. Nice habit. There are two things that comes to mind with this.
First, it encourages the dev to make deliberate design decisions about mutability vs not. Second, immutable values are an opportunity for compiler optimizations, yes?
So even though Go doesn't do immutable, per se, the compiler can know if a (non-exported) value is mutated in its package. If it is provably not mutated, it's therefore equivalent to immutable.
Am curious if the Go compiler(s) contain such logic or optimizations.