As someone who comes from a manual memory management background, the appeal of Go to me, is that I can reuse a lot of my old tricks and knowledge, while the annoying tedious stuff is taken care of by a GC.
Thinking about lifetime of major data structures and when to allocate and free them, is a natural part of programming IMHO.
What makes manual memory mangement coding suck is more about dealing with all the small periphrial objects. E.g. I don't really want to have to think about allocating and freeing every little string.
Go is a systems programming language, so I think that reasoning more about your data and memory layout is what is to be expected. They gave us structs and pointers for a reason.
In some ways Go is C/C++ made simple.
I don't see why Go has to replicate Java and C#. If what you want is Java, then just use Java. I think the appeal of Go is access to a more manual form of memory management. Sure that does not appeal to everyone, but those people can stick with Java. Nobody forces anyone to use Go.