moderated Re: From address re-writing
I proposed that it work like the Time Zone, Time Display, and Date Display controls on the Default Sub Settings. Those correspond to Account (not Subscription) controls.
The Account control always takes precedence, the Default Sub Setting only applies when a new account is created.
Now we could, and probably should, consider splitting these Account-related controls into a separate "Default Acct. Settings" tab in the group's settings page, for clarity on what they apply to and how. Or at least put section boxes around the defaults for new Subscriptions versus those for new Accounts.
I think my idea would handle your #2, #3, and #4.
In the case of #2 I'd have the "gmail.com" test, when true, take precedence over the group's Def Sub Setting when creating a new account. Likewise in the case of #4 when a domain matches your internal list could take precedence.
Granted that does mean that the group's Default Sub Setting for this becomes more of a hint than a control. If this seems too mysterious, you could have a sentence under the control (in the user's Account page) that says "This feature turned on because your email address is at gmail.com" or "... is handled by an Exchange server", or "... group XYZ chose that default for you".
In the case of #3 would it be useful for you to keep a system-wide list of domains "known" to be handled by gmail.com? I don't know if those are all essentially "vanity" domains used by one or a very few accounts, or if some of them are larger organizations that outsource their email service and many new accounts would benefit from you having noticing them. Nor am I entirely sure how you would "notice" them other than something creepily Amazon-like ("you have this default because most users of your email domain prefer this setting").
Does that mean in those cases you would disable the control in the user's Account page? That might be appropriate.
Or maybe it would be better to let the user experiment with the consequences of un-setting it. Maybe users who un-set it and keep it that way represent a valuable signal that the list might be in error, or needing some form of refinement.