Seus fontes estão atualizados ??
Esse modelo (EscEcf ou 09/09) realmente procede dessa maneira... a Subtotalização sem desconto ou acréscimo é ignorada... e o ECF só entra em modo Pagamento, após receber o primeiro comando de pagamento...
porém no ACBrECFEscEcf, há um Flag interno, que sinaliza com o estado de pagamento, após a subtotalização...
procedure TACBrECFEscECF.SubtotalizaCupom(DescontoAcrescimo: Double;
MensagemRodape : AnsiString );
begin
fsEmPagamento := True ;
if DescontoAcrescimo = 0 then exit ;
with EscECFComando do
begin
CMD := 29 ;
AddParamInteger( ifthen(DescontoAcrescimo < 0,0,1) );
AddParamInteger( 1 );
AddParamDouble( abs(DescontoAcrescimo) );
end ;
EnviaComando ;
RespostasComando.AddField( 'SubTotal', EscECFResposta.Params[0] );
SalvaRespostasMemoria(False);
end;