With my limited knowledge as a given, your solution seems to be more generic. Can't you do yours and then run a client locally and grab the D3 JavaScript and output that to the server? I.e., do both in series, with the initial output from your approach as an intermediate stage.
Additional development time may be why they are making their suggestion, so you may have to be able to prove that this won't take you much longer and will provide added benefit.