As far as I can tell, Have has exactly the same shortcomings as Go, but with a slightly different syntax. I don't care about indentation vs block markers (I prefer begin
The Go language is indeed limited: I see it as an odd mixture between Java and C, a Java-- if you want: no OOP, no generics, automatic memory management. It does offer easier multi-threading than either. So Go offers a lot of protection against typical C bugs, but performs better than Java. It's therefore a sane choice if you want to write low-level-ish applications, where performance matters, and you don't want to spend dev time doing your own memory management.
Personally, I find Rust very interesting, but it's a bitch when it comes to rewriting old code in it. I would love to do a bigger project in it, though, to get a better feel for it.