Allora, quando tu metti il return stai dicendo che la funzione restituirà quel risultato; solitamente infatti le funzioni non scrivono su cout, ma restituiscono un risultato, in modo che il chiamante possa decidere cosa farci. In ogni caso se non specifichi un return in una funzione che ha un tipo restituito non-void il valore restituito è indefinito (o meglio, se non sbaglio non dovrebbe neanche essere possibile omettere il return in questi casi, ma se il compilatore te lo lascia fare il valore di solito è indefinito).
Comunque ti consiglio vivamente di leggerti per bene il capitolo del tuo libro dedicato alle funzioni, visto che non è nulla di così difficile.