Oltre alle risposte fornite, c'è anche il fatto che in un front-end MVC o MVP si separano i dati dalla vista. Inoltre, consente il back-end di essere utile per più progetti.
È possibile fornire gli stessi dati e avere, ad esempio, un'applicazione che la visualizza come un grafico, uno che la utilizza nella sua logica (ad esempio un analizzatore di borsa che non mostra i dati di magazzino ma li utilizza per prevedere i prezzi futuri), e uno che lo mostra direttamente all'utente (forse in qualche modo ottimizzato) che può essere usato come strumento interno di debug per gli sviluppatori.
Se avessi il server restituire HTML, solo l'ultimo sarebbe pratico. Se restituisce tutti i tipi di codice diverso a seconda del client, significa che il design si spegne in funzione, il che dovrebbe essere evitato.
Come regola generale, la presentazione non dovrebbe mai essere mescolata con la logica. Questa è la filosofia di MVC. Il server si occupa di dati e logica. Riceve dati grezzi, elabora dati grezzi e restituisce dati grezzi. Non dovrebbe mai importare di cosa sembreranno i dati all'utente. Il compito del cliente è di formattare ed elaborare i dati al fine di renderli presentabili all'utente in qualsiasi modo venga specificato.