Inconsistency comes from the fact that we always rushed to get this out and never spent any moment cleaning it up.  One issue came up with the original model of doing the chaining method calls inside the plugin was that it made it difficult to write unit tests.  So to make the deadline, we opted to keep the interfaces simple to call from the plugins, thus eliminating the needs to write complicated tests.  That said, it doesn't matter as long as it's consistent.  My preference though, is to keep the complexity as much as possible in the code that we maintain as opposed to the public community for faster modification.

@duarten, that's great that you can clean this up.  For Icehouse, since we are starting development early, we should really clean up our code.