Return fa sì che si esca da una funzione.
Nel tuo caso stai uscendo dalla funzione main, il che comporta la chiusura dell'applicativo.
Se utilizzi system("PAUSE") o getch l'applicativo non si chiude perchè aspetta che l'utente prema un tasto sulla tastiera.
Per la differenza tra system("PAUSE") e getch posso aiutarti relativamente perchè è da un po' che non uso il c.
Comunque la differenza principale dovrebbe essere che system("PAUSE") non ti restituisce valore, mentre getch ti restituisce il carattere inserito.