Looks very good.
For the size legend, the defaults are a bit odd. You should almost always be using d3.scale.sqrt() as you're comparing area, also zero in the domain should usually map to zero on the range.
I made a similar legend for circle areas, but they are stacked within each other. http://bl.ocks.org/aubergene/4723857