Regarding `this.owner` vs event, I think that calling `this.owner` is fair game: the coupling already exists because parent often call `this.$child`. In case of change of structure, i.e. `DocumentToolbar` is moved outside of EnyoEditor, I'd rather see an explicit error (liek `switchToDocument` not found) than a silent failure (lost event). On the other hand, `this.owner.owner` is indeed a really bad idea, just like `this.$.foo.$.bar`

`onTabRemoveRequested` uses a `onCloseDocRequest` event to invoke `handleCloseDocument`  that will query user whether to close the tab or not and then finally call `removeTab`. `onTabChangeRequested` also sends a query to user to check whether to switch or not. This was written more recently and use a callback provided by TabBar to perform the actual switch. Using callback involves less boilerplate code. Furthermore using event requires to add code to handle Tab in EnyoEditor.

The discrepancy between `requestCloseDoc` and `switchDoc` is an oversight that will be fixed.

We just have to agree on how.