I run into this a while ago while porting polymer-flex-layout to Dart.
In Dart I had the problem that the parent was not yet properly assigned when my callback method in the child was called so I couldn't access the parent.
A discussion on StackOverflow led to the point of view that this is breaking encapsulation and should be avoided.
Maybe this is to strict. Maybe it's ok if the only assumption is, that the parent is a HtmlElement.
In my case I created a custom element that I used as parent and replaced the div that was used before and let it listen for events from the child if it should set a class.
In Luke's case the parent could probably be modified to call a method on the child or change an attribute.
What do you think about it?