Now that the performance difference between `$broadcast` and `$emit` has been eliminated, is there any reason to prefer `$scope.$emit` to `$rootScope.$broadcast`?

They are different, yes. 

`$emit` is restricted to the scope hierarchy (upwards) - this may be good, if it fits your design, but it seems to me a rather arbitrary restriction.

`$rootScope.$broadcast` works across all that *choose* to listen to the event, which is a more sensible restriction in my mind.

Am I missing something?

**EDIT:**

To clarify in response to an answer, the direction of the dispatch is not the issue I'm after. `$scope.$emit` dispatches the event upwards, and `$scope.$broadcast` - downwards. But why not always use `$rootScope.$broadcast` to reach all the intended listeners?