That is a common Makefile design pattern. It allows you to call "make GOCMD=path/to/custom/prerelease/go" to run with an alternative go version, for instance. (But I agree, the other variables seem overkill.)
Mechanism, not policy — the good old and mostly hyped-out principle.
The `?=' operator will only define the variable if it doesn't exist (and thus allows overriding via:
GOCMD=/foo/bar/baz make