What's going on here? Can't we use d3's enter/update/exit mechanism to ensure this?