Not sure what you mean here
>Reading Go means that I usually don't have tooling that can jump to definition, because there are umpteen different dependency management tools, and Gopls only supports one of them.
There's 1 dependency management tool though. It's go modules. Unless you live 2 years in the past?
>Reading Go means that even when I have tooling available, and it feels like working today, jump-to-definition becomes impossible as soon as interfaces are involved, because structural typing makes it impossible to know what is an intentional implementation of that interface.
You just right click in VS Code and click "Go to implementations". Or if you use Goland it's right there on the gutter.
Reading comments like this really makes me wonder if anyone complaining about Go has actually used it.