title: Issues with creating a new isolated scope in factory
body: <p>I'd like to know what the consequences / issues of creating a new isolated scope in a factory are, by doing <code>$rootScope.$new()</code></p>
  
  <p>I'm trying to allow the user of my library to do something like <code>$cordovaPush.$on('notReceived')</code>, rather than using <code>$rootScope.$on('...')</code> (even though it may be pointless to do this). I've seen other comments about memory leaks and various other issues with creating a new scope, but I haven't found any proof or real convincing arguments as to why this should not be done.</p>
  
  <p>Here's some code as a reference to what I'm doing:</p>
  
  <pre><code>.factory('$cordovaPush', ['$q', '$window', '$rootScope', '$timeout', function ($q, $window, $rootScope, $timeout) {
  
    var $cordovaPush = $rootScope.$new(true);
  
    $cordovaPush.onNotification = function (notification) {
      $timeout(function () {
        $cordovaPush.$broadcast('notificationReceived', notification);
      });
    };
    $cordovaPush.register = function (config) {
      ...
    };
    $cordovaPush.unregister = function (options) {
      ...
    };
    $cordovaPush.setBadgeNumber = function (number) {
      ...
    };
  
    return $cordovaPush;
  }]);
  </code></pre>
  
  <p>ALSO</p>
  
  <p>If creating a new scope <strong>is OK</strong>, what is the best practice for destroying the scope? Is it necessary to destroy the scope if the app is closed and opened again?</p>