I love using d3 to make visualizations, the only bad thing about it is that so many demos and tutorials seem to have been made on v3 which requires some minor adjustments to get the same code working on v4+.
The breaking changes from V3 to V4 was a real problem, imo. A lot of it was the same functionality just reorganized.
A better approach would have been to leave the old code running with stubs to the new method signatures. As it is, if you want to migrate code from V3 to V4, it takes a lot of mostly annoying and tedious work that could have been done once by a little bit of code that calls the new code from the old method signature. Have a d3V3toV4.js translator library in there if you want, but don't make people update years of code to get on the latest versions of the API.