Diamond has dangling bonds on the outer surface of the crystal for pretty much the same reason as graphite. If you understood graphite differently, then you understood it wrong.
See, a molecule of oxygen contains 2 atoms, a molecule of sulfur has 8; but how many atoms are there in a "molecule" of diamond or graphite? Try drawing one to the end, so as to count them. You won't be able to do that. There is no end. The thing is infinite. But the real-world objects are finite, which means that at some point you have to say "Enough" and crop your ideal structure, and in doing so, you leave dangling bonds which attract other atoms. Fullerene lacks those, and hence is "more pure".
There is an altogether different dimension to the problem. Our thought experiment implied that we are able to produce a huge crystal without defects except maybe some on the surface. This is not true. Real-world compounds always contain impurities, and once you have a wrong atom built into the crystal lattice of graphite or diamond, it is stuck there forever. You'll never remove it, short of destroying the entire crystal. Fullerenes, on the other hand, are molecular compounds. They can be dissolved. They can be put through chromatography, sublimation, and other purification techniques. We can always remove any impurity (not that we can remove all of them, because nothing is ideal).
Either way, fullerenes win.