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 be 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?