I was on the same boat for a while. But as I kept using the language, I did get used to it over time. More often I find myself searching for functions with the prefix New (or new), which usually represents a constructor. And most Go authors are expected to make it a point to document if their object does lazy initialization or not.
Or you could add a check statement to each method such that it panics when the object was used uninitialized.
It will be more correct to compare Go with C. Operating systems are written in C and it still works really well. And the people working on them don't seem to complain a lot. Go is more of a user-friendly version of C, that compromises efficiency to a certain degree for convenience.