One good reason would be (as he says) that it is flaky. eg how does it handle newlines, commas, tabs and non-ascii characters in data? I've had to pull dirty data between systems before, and csv as the lowest common denominator tends to be lossy as there's no spec on this stuff. Some systems (eg oracle's csv import) do support forms of escaping, but they're not interoperable.
I mean that I want to use Excel as a spreadsheet and use its contents to drive a D3 diagram without the current hassle of getting the data out of Excel into a format that D3 can read cleanly (and continuously - if I update the spreadsheet, the diagram should also update).