Project lead here. I switched from C# to go for multiple reasons. One was that we were having strange platform-specific issues between different operating systems with the runtime. Another reason was due to some design issues causing the code to be very difficult to work in.
I was originally going to re-write it in C, but when I saw go, I immediately fell in love with it. In my mind it sits somewhere between C and C++. Yes it has a GC, but it's not obtrusive. Plus the language is simple and nice to work with.
Regardless of what language I use, someone's going to say it's a "bad" choice and others will say it's a "good" choice. Personally I believe the language is just a tool, and go is working out extremely well for us so far.
No premature optimizations from the GC perspective that I am aware of. So far it has not gotten in the way from what I can see. The Go team has made some excellent improvements. The team has been doing work profiling along the way already even in this early phase.
Presumably due to the wealth of C# code/libraries available to game devs. It's an incredibly popular language in that area, certainly more popular than Go.
There are plenty of good reasons not to use C#, but we shouldn't pretend that there aren't plenty of good reasons _to_ use it for specific problem spaces.
A lot of indy devs are using Unity. Hell, a lot of non-indy devs use it. So that's not a big deal.
There are some other frameworks that use C# and are cross-platform. Monogame is the cross-platform replacement for MS's XNA, which targets most of the major game systems out there.
As the OpenDiablo2 developer has confirmed: cross-platform C# is a pain.
Yes, I understand that Windows is big and there are a lot of C# developers/fans here who immediately scream "What? C# can do anything!!!", but in practice MS doesn't support opensource where it matters and when it matters.