hmm... actually, using
return mail(arguments);
should be fine in your referMail() function.
mail() returns a boolean (i.e. true/false) value, stating whether it was accepted for delivery (though not whether the recipient accepted it, as that is a different matter).
return isnt a function, rather, it is a language construct. Still, you probably dont need to know the subtle differences between the 2 just yet.
When called from within a function (say function f()), it ends the function's execution, and returns its argument (parameter) to the caller, i.e. the function that called f().
When Frederick says that "the return before the mail() function will cause your mail to stop", he is referring to the other mail(), the one before referMail() was called.
Since a return statement was used there, the current function ended, so referMail() was never actually called.