OI Juliomar.
Levando em consideração sua resposta, olhei a chamada da consulta e esta identica ao exemplo do MDFe em procedure TfrmACBrMDFe.btnConsultarClick(Sender: TObject);
Veja no código da Revision 33422 na unit ACBrMDFeWebServices .
Existe outras duas variaveis FprotMDFe e FprocEventoMDFe, coloquei o bloco de código abaixo, que também são destruídas se existirem antes de serem criadas.
Segui apenas a mesma logica em relação a FprocInfraSA.
O fato é que se eu remover essa linha e fizer varias consultas acontecem vários MemoryLeak e acrescentando essa linha não ocorre.
procedure TMDFeConsulta.Clear;
begin
inherited Clear;
....
if Assigned(FPConfiguracoesMDFe) then
begin
FtpAmb := FPConfiguracoesMDFe.WebServices.Ambiente;
FcUF := FPConfiguracoesMDFe.WebServices.UFCodigo;
end;
if Assigned(FprotMDFe) then
FprotMDFe.Free;
if Assigned(FprocEventoMDFe) then
FprocEventoMDFe.Free;
if Assigned(FprocInfraSA) then FprocInfraSA.Free; <<< adicionado
FprotMDFe := TProcMDFe.Create;
FprocEventoMDFe := TRetEventoMDFeCollection.Create;
FprocInfraSA := TProcInfraSA.Create;
end;