Reloj $ angular | devolviendo el artículo de la función

Me interesa saber por qué siempre tengo que hacer esto.

$scope.$watch( function() {
   return $scope.someData;
}, function( value ) {
   console.log( value );
});

Para que Angular pueda ver realmente los datos, ¿por qué tengo que hacer esto? Esta es una de las cosas que realmente me molesta porque no tiene sentido.

Si hago algo como esto

$scope.$watch($scope.someData, function( value ) {
   console.log( value );
});

¿Cuál es mejor, nunca funciona?

También lo uso mucho con las fábricas.

dilo$data es una fábrica que tengo que hacer

$scope.$watch( function() {
   return $data.someData;
}, function( value ) {
   console.log( value );
});

Respuestas a la pregunta(4)

Su respuesta a la pregunta