So, I thought this at one point, too. But it turns out that methods is a type alias to an unnamed type, so there's no package level privacy issues: https://github.com/protocolbuffers/protobuf-go/blob/v1.26.0/...
I'm struggling to understand what the rationale _for_ doing it is though. Maybe it's to avoid an import cycle?