Clearly we don’t need this feature. Just because the Go team decides to implement a feature doesn’t imply that they must think that the language needs the feature. You’re searching for contradictions where none exist.
Most programming language features are not strictly needed. They’re just quality of life improvements that are on balance a good addition to the language.
Sure, but if you take that view, everything above assembly is a QOL improvement and we really don't need anything. That definition is pretty useless though.
Hmm, I don't think so. Go needs a string type to be a usable high-level programming language, but it doesn't need, say, the 'any' alias for 'interface{}'. Some features are more central than others. Perhaps none are 100% essential or inessential, but some features are clearly closer to one end of the spectrum than the other.