Your second example is exactly what I'm using it for. The root view (for a specific context, you might want to create additional contexts for subviews at some point) or in my case appLayout creates the context and passes it along. All the sub-views just call bindContext with that context and automatically have their events bound.

The reason I put this in bindContext is that it binds the view to an existing context. I guess breaking the interface is bad, otherwise I'd suggest createContext for the original use.

As for
1. I don't think such a thing happens, right? It sets a context property on the view, though, and that should definitely stay.
2 and 3. agreed.