2 has been possible since version 1.0
While it won't win the hearts of Gophers, I would use a utility function that panics if error, at least on throw away code.
There are some instances of it in the stdlib, e.g. <https://pkg.go.dev/html/[email protected]#Must>
I'd guess with generics we can expect a generic "Must" to replace them.
I'd love to see less verbose error handling too, but Rust's ? IMHO is not the best way to go - it adds quite a bit of magic and makes debugging difficult, when a question mark at the end of a line "injects" an unexpected return statement.