This is quite a general question, but let me have a go at answering it. I think the closest to what you're asking for would be a reusable chart, which aims to provide the code for a particular kind of chart in a way that you don't need to write a lot of code to use it ("a lot of code" is subjective of course). Many of the D3 plugins use this pattern, so I think this is what you're looking for.
Even if you have a reusable chart, there's a certain amount of boilerplate code you have to write to tie everything together. For completely data-driven graphs, have a look at Vega. Some of the verbosity of D3 also comes from the fact that the attribute names are usually human-readable (i.e. quite long) and there's usually a number of attributes to be set for a given visualisation. In many cases, you could set this in CSS as well.
As for the question when to use D3, that's entirely up to you. I would use D3 for basically everything, but then again I'm far more familiar with it than anything else. I certainly wouldn't say that you shouldn't use it for a standard bar chart. Even though the code may be a bit longer than in another framework, you have lots of options when it comes to customising it. This actually comes up a lot here, when people use one of the higher-level libraries based on D3 and find they can't customise it the way they want.
Finally, here are a few things you might be interested in. There's NVD3, which is one of the higher-level libraries I've mentioned. There's also d3charts, which has a similar purpose. Both of these reduce the amount of code you have to write for simple charts. There're more out there as well, and of course you can always wrap your favourite chart in a reusable layout.