Filtro personalizado Angularjs e injeção de dependência

Eu sou novo no AngularJS e vejo muito essa sintaxe:

function someFunc(){
   return function(input){
    return 'hello' + input;
  }
}

A função acima é uma sintaxe geral que eu costumo ver muito, mas o problema é específico neste exemplo para o filtro personalizado:

angular.module('bookFilters', [])
    .filter('newBookFilter', function(){
          return function(input){
        return 'The Book: ' + input.name + 'is new !';
   };
});

Entendo que agrupar a função com outra função me dá a oportunidade de usar a injeção de dependência. Aqui estão minhas perguntas:

O filtro obtém a função retornada da função de quebra automática? Então, ele é capaz de usar injeção de dependência para injetar o valor na função?Teoricamente, que:

Este código:

{{bookObj | newBookFilter}}

Se tornará:

{{   bookObj | function(input){return 'The Book: ' + input.name + 'is new !'; }  }}

E finalmente o{{}} retornará o valor final da função.

Por que não posso simplesmente injetar oinput para a primeira função como:

angular.module('bookFilters', [])
         .filter('newBookFilter', function(input){
             return 'The Book: ' + input.name + 'is new !';
     });

Por que a injeção de dependência funcionará apenas na função retornada?

Sei que estou realmente confuso aqui, se alguém puder me ajudar ficarei muito agradecido, obrigado a todos e tenham um bom dia.

questionAnswers(3)

yourAnswerToTheQuestion