So, I've also dabbled in Go; and would be interested in hearing others' impressions of it.
My own sense is that it's a truly excellent language for writing servers -- mostly because it has a well thought out collection of concurrency and exception handling features. Speaking as a hobbyist, I'd certainly recommend it to other hobbyists interested in rolling simple but efficient servers.
But while the semantics are lovely, Go's syntax has some warts. The variable definition shorthand makes it easy to write scoping bugs, and the syntax restrictions on newlines seem fairly terrible. A few months back we had a long thread on lua-l about the changes in lua's newline handling between 5.2 and 5.1 -- and working with Go has left me with a renewed confidence that sensible newline sensitivity is important. As best as I can tell; Go's parser will throw an error anytime you do something with newlines that makes it vaguely nervousness -- effectively a much more aggressive version of the "Ambiguous syntax" error from 5.1. And this ends up being a perpetual source of small annoyances.
I still think Roberto et al. went too far in dropping all newline checks from 5.2 -- but Go stands as an excellent example of the problems inherent in the opposite extreme.
-Sven