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.