I believe Steve is already working on this. I imagine he will chime in soon. We discussed it yesterday.
There are two (progressively fancier) versions of this:
1) <div on-click="{{ handleClick }">
This would provide the benefits already mentioned. The implementation is likely inside the polymer base class whose bind() method will treat any on-* binding as a request to add an event listener to the provided function.
2) <div on-click="{{ addItem(currentItem) }}">, e.g. allow the function be an expression
This would additionally require polymer-expressions to treat expressions inside on-* bindings specially. Notably, it will not register observers on anything in the expression, but will return an object whose value property is a wrapper function which closes over the model and evaluates the expression when it is invoked.
I'm not a security expert, but I think we need to take care in designing both of these to avoid risk of creating XSS attack surface. One approach may be to only white list model functions are methods of polymer elements.