That's a very fair judgement, but it's also something the d3 team knows about. D3 4.0 is breaking d3 into a bunch of reusable components. The exact use case you mentioned, getting the path/layout data so React or anoth DOM manipulation library can be used, is supported by d3-shape, which just can out recently. Tree diagrams are still in progress, but various curves and pie charts are already implemented.