Bom dia Julio,
Da forma que você fez criando mais uma propriedade no método, obriga o desenvolvedor a saber qual é o valor que tem que ser passado dependendo do provedor.
No meu entendimento se deve ou não realizar a assinatura, isso tem que ser parametrizado na Unit de cada provedor, ficando desta forma transparente para o desenvolvedor.
Você sabe que para o provedor XYZ deve-se passar o valor False para a propriedade ABC e outro que esta começando agora não vai saber e consequentemente não vai funcionar uma vez que o método assume o valor True na falta do mesmo.
Até alguém lembrar que tem que passar o valor diferente dependendo do provedor, já se passou um bom tempo.
Pensando desta forma fiz algumas alterações e criei uma propriedade interna chamada AssinaGerar.
Agora temos o AssinaRPS, AssinaLote e AssinaGerar.
Alguns provedores possuem o método Gerar alem do Enviar, qual a diferença?
O Enviar permite que seja enviado um lote contendo de 1 até 50 RPS assinados um a um ou não.
O Gerar permite que seja enviado um único RPS assinado ou não.
O problema que alguns provedores ao enviar o lote os RPS não devem ser assinados, somente o lote, mas por outro lado ao enviar através do método Gerar o RPS tem que ser assinado.