> Explicit interfaces. In Go, you cannot have multiple functions with the same name. Because of how this interacts with implicit interfaces, if two interfaces you need to implement require a method with the same name, it gets very hard to manage. Normally this is not an issue, but I also like being explicit about things.
To your points about integrity verification: maven does this too if you pass the `-C` flag.
One of the mayor benefits of maven/cargo repositories is that they are configured to be immutable. No issues with deleted repos or deleted/overwritten tags. Once your dependency is published it's there forever.
This was recently fixed in Go 1.14: https://golang.org/doc/go1.14#language