You don't even need to run `go clean`. Go will automatically detect whether stuff needs to be rebuilt, as the Go version used to build a package is part of a hash, that is used as a key for the build cache.
And yes, it will use the standard library packages of the Go version that is installed (the one output by `go env GOROOT`). In fact, if you just change the on-disk content of those packages (e.g. edit `$(go env GOROOT)/src/fmt/format.go`) it will automatically detect that and rebuild the changed standard library packages as needed, just like it would with a first party package. This can be a very useful (and fun) debugging tool, as it means you can actually insert debug printfs *into the stdlib* to see what is happening.
All of this assumes your Go installation is setup correctly, of course.