Considering Go's own history, and knowing the current constraints of the language and current tooling, it also seems to me wiser to start from first principles.
Especially since one could argue that none of the other languages have really solved the issue of dependency management 100% satisfactorily for their own ecosystems.
That means that we have to agree on our terminology first, since it is going to be specific to us (and may or may not overlap with the terminology used in other ecosystems).
It means that the necessity for each feature needs to be argued.
A lot of people have been tackling the issue on their own, which is great. Scratching their itches. It would be interesting to write up a list of the shortcomings in the current tooling they wanted to deal with. Instead of looking at what is done elsewhere.
I hope that people are ready not to push for their own blessed solution, or other people's solution from the get-go but rather ready to look for advantages and drawbacks in what they implemented. Then we will be able to summarize and hopefully from that, the best solution that works for Go can arise.
One last note: a lot of the tools that have appeared lately are directly insspired by the Go tooling. Whether in Elm or Rust etc. They still have shortcomings in my opinion even though they might be seen as advances. Let's try to focus on what we can do to solve our issues. I'm positive we can find something great.