¿Tiene que usar ng-Controller en la vista o simplemente puede declararlo en el $ routeProvider?

Hace poco me di cuenta de que no había usado ng-Controller para declarar el scope oficial de mi controlador en el HTML, sino que solo lo había mencionado en $ routeProvider y que todos los APPEARS estaban bien.

¿Alguien sabe alguna desventaja de dejarlo como tal? ¿Solo definiendo y haciendo la referencia a mi controlador en el $ routeProvider?

Lo consideraría correcto y una ventaja la forma en que lo ha hecho, ya que se relaciona mejor con el contexto de su vista y el controlador vinculado al mantener las cosas en un solo lugar.

Solo tenga en cuenta que proporcionar su controlador en la definición de ruta es básicamente lo mismo que poner un ng-controller="MyCtrl" dentro del elemento que contiene su directiva ng-view que coincide con su vista de ruta.

Además, si necesita un enrutamiento más complejo (por ejemplo: vistas jerárquicas y controladores), entonces consideraría buscar ui-router para usar en lugar de ngRoute

Si no está procesando ese HTML desde un lugar diferente de alguna manera (algo que no he visto hasta ahora), entonces no hay diferencia, solo asegúrese de no declararlo dos veces por accidente (una en el $ routeProvider y otra en el HTML).

Solo debe declarar el controlador en su $ routeProvider. De lo contrario, se instanciará dos veces.

En algunos casos, sería transparente, pero puede conducir fácilmente a un comportamiento extraño.

Como referencia, la guía Angular proporciona ejemplos de código sobre cómo usar ng-view: https://docs.angularjs.org/api/ngRoute/directive/ngView