This is the approach used in Haskell's Reactive Banana and it's declarative, making it very clean and easy to read. Since it's functional, you can probably write tools to spit out all the possible event graphs in an app and the event networks that are actually wire up by the app when in use.
Better yet, you can make a module that records all the events at the Source input with timestamps and then use a timeline scrubber to play them forwards and backwards in many cases. I do this in an app I am building with animations. Every single thing that can be animated implements a function that takes an input from 0.0 to 1.0. Such functions can include changing opacity, z-depth, height, width, position along a bezier curve, etc.
For custom animations that are state dependent, I will often have a higher order function that takes some state of the world as an argument, creates a data structure representing the desired custom animation based on that state that can be looked up from 0.0 to 1.0. That function then returns another function that takes an state from [0..1] that is used to lookup the animation state in that data structure referenced by closure.
When I have lots of animations occurring simultaneously that need to be choreographed, I just create a state emitter that goes from 0 to 1 linearly over a predetermined amount of time. That state emitter can be mapped to functions that change the curve from linear to all sorts of things like quadratic functions, step functions, binary on/off functions, etc. This all allows me to orchestrate a ton of animations, making things like this and this trivial.
The main body text is painfully hard to read. The contrast is too low; not making it black is understandable, but #999 on a white background just hurts.
EDIT: also, the link to polymer-project.com should be to polymer-project.org, as the former is a generic squatter site.
I must admit, if the framework you are building doesnt have 2 way databing , it is not worth my time anymore.
After something like AngularJS i cant go back to wiring templates and data by hand.
Polymer looks great but did not work when i tried it.
ReactJS , i dont like the use of JSX,and if you dont use it things get verbose.
I used to use Backbone , but without 36 plugins it is worthless in a large scale app.
Waiting for the final v1 of EmberJS too.