It's not a tree though.
A tree doesn't have connected leaves and branches. This is, however, common with classes that might get injected the same dependency
Sounds like missing the tree for the forest. Im not from a pure cs background (so forgive my mangling of terms) but isnt a tree essentially an acyclic graph with constraints, 1 parent 2 children for example? What you're describing is adding some cycles into that graph no?
The number of children can be anything, it's two children for a binary tree.
Each node except one node must only have one parent, which isn't true if two or more nodes share one or more children.
And, yes, in theory this adds cycles which aren't allowed.
However, since class dependencies are better represented as directed connections (which aren't usually used for trees in CS terms), it isn't a true cycle.