There are three compilers for Go, one based on the Plan 9 stuff, one a GCC front end, and one an LLVM front end. True, none of them use header files, but this is really something that doesn't affect C-family languages if you use precompiled headers. The Plan 9 implementation is fast because it does a tiny subset of the optimisations that GCC or LLVM would do.
This really isn't true. Watch the video I linked. Despite your claim today gccgo is slower than gc in compiled performance. Indeed Go 1.4 has begun to approach Java in microbenchmarks. Most of the C++ slowness comes from the amount of data the compiler has to process due to header files. The reason for this slowness is a well known thing. Try GCC's precompiled headers and be blown away by the difference.
As far as mutability goes, it is extremely easy to enforce... just use an interface. I mean being a clojure programmer I understand your objection, but its never really seemed that much of a problem to me.