In mutt, you can setup multiple accounts, and use account hooks (complete with key bindings) to change to those accounts. I have a Gmail account and a work account. In my Gmail account, I use goobook to access my Google Contacts, and I can successfully tab-complete the addresses when composing mail. But, I have not been able to tab-complete my aliases for my work account. Well, I figured it out, and if this is bothering you, here's the solution:
In my ~/.muttrc:
folder-hook "gmail.com" "source ~/.mutt/gmail.rc" folder-hook "example.com" "source ~/.mutt/work.rc" source ~/.mutt/gmail.rc # open gmail on startup
In my ~/.mutt/gmail.rc:
bind editor <Tab> complete-query bind editor ^T complete set query_command = "goobook query '%s'"
In my ~/.mutt/work.rc:
bind editor <Tab> complete # default Mutt setting bind editor ^T complete-query # default Mutt setting unset query_command # default Mutt setting source ~/.mutt/work_aliases
Notice the differences between the key bindings for "complete" and "complete-query" in the different RC files. Also notice that I'm unsetting query_command in my work.rc config. This is necessary to tab-complete the aliases out of the ~/.mutt/work_aliases file (the account details for my Google Account reside in ~/.netrc).
Hope this is helpful to someone else. I'm sure this is only helpful for a very small subset of users, but I wouldn't be doing my due diligence if I didn't post it. https://www.xkcd.com/979/ is relevant.