Bom dia
Se eu entendi direito, muitos ifs não é bom, façamos um método pra cada um. Mas muitos métodos também não é bom, façamos uma classe para cada um. Mas isso resultará em muitas classes. Eu poderia recorrer ao mesmo argumento e dizer que para cada novo imposto haveria uma nova classe.
Por que muitas classes não é um problema?
PS:Não estou questionando a validade desse padrão de projeto, só querendo entender por que a poluição não é aceitável dentro do código mas é aceitável na estrutura de arquivos do projeto.