Servidores separados (físicos ou virtuais) para diferentes funções é uma excelente idéia.
Se um servidor morre ou tem problemas, isso afeta apenas esse serviço. Se todos estiverem no mesmo servidor, algo que trava o servidor remove tudo.
Isso também significa que você pode agendar atualizações com mais facilidade, pois fazer as atualizações afeta apenas um serviço por vez. E quando você decide atualizar o sistema operacional um dia, não precisa se preocupar com a quebra de vários serviços diferentes. Você pode até encontrar uma situação em que um site precisa de uma versão antiga do PHP ou MySQL para funcionar corretamente, mas seus serviços de email precisam de uma versão mais recente. Servidores separados você cobriu lá.
Também facilita muito a restauração de backups. Se email e sites estiverem em um servidor, você deverá se preocupar em restaurar os dados para os dois ao mesmo tempo. E, possivelmente, perdendo algumas das mais recentes alterações de email e site que ainda não foram copiadas. Se eles estiverem separados, você só precisa se preocupar com um deles sendo revertido. Especialmente útil se for o servidor da web que você está restaurando - reaplicar algumas alterações no site não é tão ruim. É necessário excluir as últimas 23 horas de e-mails porque o site quebrou.
A desvantagem é que agora você tem mais servidores para gerenciar e pagar. Mas na maioria dos casos, eliminar o risco de um problema eliminar TUDO vale a pena.