¿La mejor práctica para usar $ rootscope en una aplicación Angularjs?

Tenemos una gran aplicación Angularjs 1.6 que tiene $ rootscope disperso por toda la aplicación en más de 200 lugares en filtros, servicios, rutas, etc., por lo que debe ser refactorizado, pero no estoy seguro de cómo saber cuándo eliminarlo. ¿Cuándo es una mejor práctica usar $ rootscope en la aplicación?

Leí todo, desde nunca, hasta usarlo para almacenar variables, lo que supuse era para compartir datos entre controladores. Desde entonces, he leído que es mejor usar fábricas / servicios para este caso de uso y también he leído que un caso de uso válido es usar $ rootscope como un bus de eventos global.

Realmente no vi esto explicado en los documentos de Angularjs.

Respuestas a la pregunta(3)

Su respuesta a la pregunta