> The question isn't being solved yet because to solve it seriously it would require to change how the language works at first place.
And Go 1 compatibility promise [0] would prevent any change.
In theory, you could define a GOPATH to install custom packages. You install half a dozen or so packages, and it's not trivial to determine what all you installed. A Go update arrives. Now some of those packages fail to update. Either spend hours debugging, reporting bugs, or rm -rf $GOPATH and reinstall everything.
The language is wonderful in so many ways, but a number of seemingly silly things make it annoying.