Le altre risposte sono tutte eccellenti e lo spam ha molto a che fare con esso.
Ma in realtà esiste una risposta più semplice, più generica: le funzionalità. L'invio di e-mail tramite SMTP è in realtà un'impresa molto complessa. Anche senza spam, non si vorrebbe implementare l'intero set di funzionalità del protocollo SMTP in ogni client di posta elettronica; stai meglio con un software dedicato (sendmail, postfix ecc. sono i più grandi nel mondo * nix, Exchange nel mondo Windows).
Ad esempio, anche al massimo, un server SMTP "reale" deve almeno essere in grado di risolvere i record MX. Quindi deve negoziare le funzionalità (principalmente TLS, ma ci sono anche altre funzionalità). Deve gestire le code per riprovare, generare rapporti di mancato recapito, ecc.
E questa è solo la funzionalità di base, indispensabile, senza la quale il server non funzionerebbe nemmeno. Non include nemmeno cose come la riscrittura degli indirizzi, i mailertabili. Per non parlare della dozzina di altri protocolli supportati da sendmail e altri, come UUCP.
L'implementazione SMTP in Outlook, Thunderbird ecc. È molto minima - nella migliore delle ipotesi, all'incirca l'equivalente dell'utilizzo di uno smart host su sendmail, se quello.
Problema correlato, ma separato: l'e-mail è un argomento molto sensibile alla sicurezza e vorresti avere uno o pochissimi server gestiti centralmente che la gestiscono, anziché potenzialmente centinaia o migliaia di singoli su ciascun desktop.