La frase è corretta. Si noti che il primo condizionale passato (avrebbe relazionato) ha la funzione di futuro nel passato, cioè serve a posizionare l'evento in un momento successivo rispetto a un altro passato, che è quello della proposizione reggente (ha detto); il secondo condizionale passato, invece (avrebbe dovuto), invece, ha la funzione di esprimere una condizione passata, cioè una possibilità temporalmente sullo stesso piano dell'evento coordinato (aveva fatto). 
La costruzione alternativa da lei proposta è corretta, ma non ha lo stesso significato della prima versione; manca, infatti, l'esplicitazione che effettivamente Mario ha fatto in passato quello che non avrebbe dovuto.
Fabio Ruggiano