¿Por qué no se recomienda usar $ rootScope con funciones?

Mientras estoy mirando las FEQ de Angularjs, he visto el siguiente artículo:

$ rootScope existe, pero se puede usar para el mal

Los ámbitos en Angular forman una jerarquía, que se hereda prototípicamente de un ámbito raíz en la parte superior del árbol. Por lo general, esto puede ignorarse, ya que la mayoría de las vistas tienen un controlador y, por lo tanto, un alcance propio.

Ocasionalmente, hay datos que desea que sean globales para toda la aplicación. Para estos, puedes inyectar$rootScope y establecer valores en él como cualquier otro ámbito. Dado que los ámbitos heredan del ámbito raíz, estos valores estarán disponibles para las expresiones adjuntas a directivas comong-show al igual que los valores en su local$scope.

Por supuesto, el estado global apesta y deberías usar$rootScope con moderación, como lo haría (con suerte) con variables globales en cualquier idioma. En particular, no lo use para código, solo datos. Si estás tentado a poner una función$rootScope, casi siempre es mejor ponerlo en un servicio que pueda inyectarse donde sea necesario y probarse más fácilmente.

Por el contrario, no cree un servicio cuyo único propósito en la vida sea almacenar y devolver bits de datos.

- Preguntas frecuentes sobre AngularJS - $ rootScope existe, pero se puede usar para el mal

Entonces, mi duda es por qué $ rootScope no se recomienda para funciones como una función global. ¿Hay algún problema de rendimiento?

Respuestas a la pregunta(3)

Su respuesta a la pregunta