Intriguing question from stackoverflow:
http://stackoverflow.com/questions/13662756/d3-js-passing-data-from-parent-to-child-nodes
This solution feels a little messy, since it goes into the dark details of d3.js - I'm only partially comforted by the fact that Mike Bostock's documentation, refers directly to use of __data__ and selection[0][0].
It also makes use of the 3rd function parameter, most usage of the data access function uses either 1 parameter (the data element) or 2 parameters (data element + index). But there is a 3rd parameter, through which d3 passes the current selection group index.
This 3rd function parameter - I recall reading about, but can't find the source. I would welcome being pointed at source material that documents its use!