Let me address the points that you have made one by one.
First, transitive dependencies do exist in software just like they exist in any complex system. For example, companies depend on people, and economy depends on companies, so it also depends on people.
Perhaps it was not made clear that there 2 sorts of dependencies: immediate and transitive. Immediate dependencies are the ones explicit in the source files. Transitive are the consequences of several immediate dependencies.
Next, you are saying that we do distinguish between the kinds of relationships that exist between components. Of course we do, look at the example of Java relationships. Moreover, we assign the weight to each relationship based on the number of interactions.
It is not true that you always end up with highly interconnected graphs. At Information Laboratory, we have studies hundreds of open source and commercial systems. The only systems that are highly interconnected are the bad, unstable ones. Good systems exhibit complex hierarchical structures that resemble balanced binary trees.
Dependency Web thinking is inspired by cutting edge ideas in the science of network of mathematical graphs. It allows engineers to focus on what is essential about components.
I suggest that you try the tool that we have developed on your code http://www.thesmallworlds.com before you call Dependency Webs useless.