Diciamo che "aborro" il comando System.exit() cosa che trovo sconveniente e da non usare.
Da "vecchio" sviluppatore di rich client java standalone, non sono d'accordo... o meglio...
Bisogna effettuare alcune distinzioni... se parliamo di applicazioni web il tuo discorso è correttissimo.
Su applicazioni che girano localmente la System.exit() evita processi "appesi" ecco perchè va utilizzata (senza contare il classico pulsante di chiusura...)
Detto ciò credo sia l'unico caso di applicazioni java in cui abbia un senso una chiusura esplicita del processo.....
Nello specifico su Android, è a mio parere, correttissimo lasciare la palla al sistema, ma alla prova dei fatti il market è pieno di applicazioni mal scritte... Ecco perchè sono spuntati come funghi i cosiddetti task manager o app killers che dir si voglia.... (che peraltro spesso non funzionano o funzionano male...)
Il capitolo sul ciclo di vita delle activities del libro di Massimo Carli contiene a mio parere uno dei più belli esercizi per la comprensione della politica di gestione delle applicazioni di Android... Ne consiglierei al relatore del progetto di cui sopra, una lettura attenta....