I have a similar set-up, where I use posting-styles in gnus to choose between several email accounts. I used to do it as mentioned, defining different aliases for the same host, having authinfo entries. It looked like this:
Contents of ~/.authinfo.gpg:
machine imap.gmail-alias1.com login me@hosteddomain.org password pass port 993
machine imap.gmail-alias2.com login me@gmail.com password pass port 993
machine smtp.gmail1.com login me@hosteddomain.org port 587 password
machine smtp.gmail2.com login me@gmail.com port 587 password
Partial contents of /etc/hosts:
# So I can use multiple gmail accounts in authinfo
# should be same address as imap.gmail.com
173.194.70.108 imap.gmail-alias1.com
173.194.70.108 imap.gmail-alias2.com
74.125.136.108 smtp.gmail1.com
74.125.136.108 smtp.gmail2.com
BUT I switched to using postfix to send the mail. What you can do is set postfix up so that it can (for example) receive mail for USER1@gmail.com, USER2@gmail.com, USER3@googlehosteddomain.com and send all messages to smtp.gmail.com, while using appropriate account credentials in each case. This requires you to install the Postfix program, and set up the files */etc/postfix/sasl_passwd* and */etc/postfix/sender_relay*.