Olá,
Pelo que entendi o método destruct só é chamado quando a instância não for mais utilizada na execução do código. E só tem ação se eu implementar alguma coisa dentro dele, ou seja, por padrão não faz nada.
Ex.
public function __destruct(){}
Por mais que o método acima esteja no código, ele até vai ser executado mas não tem ação nenhuma.
É isso mesmo?