+1
There are some valid use-cases, like exporting plugins (there's currently no better way to do this).
I think that deps should be as dumb and immediate as possible.
For example, if you find a Java file you need, you should be able to immediately find the rule to use.
The Bazel code base's BUILD files are a good (bad) example - every time I have to add a dependency I scratch my head, because there are 4-5 options that would work.
I joined the team after most of it was written, and the various names (build? build-base? package-internal? package) mean very little to me, so I choose ~randomly.
This wastes developer time, and a bad choice means you build more than needed.
The various rules probably started as something tidy and rationale, and human-curated, which is the problem, because it means others on the team need to read a manual of which rules to use, which they won't, and the original meaning will slowly be lost.
Ok wow I got carried away, carry one.
:D