O maior ponto de diferença é o processamento de velocidade e sinal, suponho.
Em relação à velocidade, se o processo for multithreaded, o strace alterará o tempo, o meu comportamento de mudança em relação às condições de corrida, etc. ou informações de tempo relacionadas ao comportamento do protocolo.
Exemplo. Digamos que o servidor POP foi atualizado e agora é mais cuidadoso ao garantir que um par não tenha enviado vários comandos POP de cada vez. Isso é mais útil em um servidor SMTP como meio de prevenção de spam.
O seu processo observa o comportamento correto do POP, na medida em que aguarda uma resposta do servidor após cada um dos comandos POP? Ou assume sucesso ou espera algum tempo entre os comandos.
Se você capturar o tráfego real do protocolo em um caso de aprovação e reprovação, há algum sinal de violação de protocolo?