Obrigado arezende pelas suas sugestões.
Eu centralizei todos os serviços relacionados à NFe na classe "ServicosNFe", pois desejava que a solução fosse mais próxima possível dos manuais da Nfe, já que nestes o foco são os serviços.
Por exemplo, o objeto "nfeRecepcaoLote2" que contém um lote de NFe's é apenas um dos muitos objetos que cabem dentro de nfeDadosMsg, por isso não fiz centralizei as operações na classe NFe.
Dessa forma poderás ver, como no exemplo que acompanha a biblioteca que o consumo de qualquer serviço, uma vez que vc já tenha o objeto que será convertido em "nfeDadosMsg" pronto, pode ser feito usando a classe "ServicosNFe" da seguinte forma:
Consultar recibo de lote:
var servicoNFe = new ServicosNFe(_configuracoes.CfgServico);
var retornoRecibo = servicoNFe.NFeRetAutorizacao(recibo);
Enviar uma NFe:
var servicoNFe = new ServicosNFe(_configuracoes.CfgServico);
var retornoEnvio = servicoNFe.NFeAutorizacao(Convert.ToInt32(lote), IndicadorSincronizacao.Assincrono, new List<Classes.NFe> {_nfe});
Mas nada impede que seja criada uma classe como vc sugere para abstrair ainda mais o código e deixá-lo mais próximo de como o ACBR trabalha atualmente, na verdade eu ficaria muito grato em receber sua ajuda. Quanto as outras sugestões, são essenciais.
Gostaria de adicioná-lo como colaborador do projeto, por acaso seu git é https://github.com/arezende?