For gift memberships, send email receipt to the giver
After some digging with debug_backtrace() to unravel the program flow within CiviCRM, I found this solution, which works:

(1) Implement hook_civicrm_postProcess(), and use it to get the giver email from $form->_submitValues. Stash it into a global variable.

(2) In CRM/Contribute/BAO/Contribution.php, patch function composeMessageArray() to append the giver email to $values['cc_receipt'] prior to the sendMail calls at the end of the function, then clear the global.

Obvious, this will need to be tested and reapplied with each upgrade of CiviCRM, but we already have a handful of such patches so one more is not too bad.