Não é bug. Da uma olhadinha no manual para esta macro.
Nas aplicações de formulário, em eventos que cotenham qualquer macro que dependa de atualização na base de dados (sc_AfterInsert, sc_AfterUpdate, sc_AfterDelete, sc_BeforeInsert, sc_BeforeUpdate ou sc_BeforeDelete) estão automaticamente protejidas por controle de transação, desde que a conexão seja a mesma da aplicação.
Caso o usuário, em alguma destes eventos, venha a utilizar um redirecionamento de aplicação (macro “sc_redir”) deverá, antes do redir, utilizar esta macro para garantir as transações efetuadas anteriormente.
Ou seja, antes do sc_redir coloque um sc_commit_trans ().