Also go is at heart a language specification. It is designed so that anybody can create their own go compiler, and as long as they honor the go spec and standard library, all go code should theoretically compile with your custom compiler.
There are already a few other compilers in development out there. Gccgo is a go compiler with gcc as a bankend. llgo is similar except its frontend is written in go and uses cgo to wrap the LLVM C wrapper api to generate llvm bitcode.
Im starting to reimplementing the official go gc and cc compilers written in go for my port of plan9's userland shell commands called goblin.
https://github.com/mortdeus/goblin
In my opinion this is the core difference between java and go. Oracle believes they own java and will fight against projects derived from java, for example the lawsuit against dalvik. Google on the other hand is open to projects like the ones I mentioned above.