Message templates and headers might or might not be processed by Smarty
CIVICRM_MAIL_SMARTY allows the admin to disable Smarty for bulk mail, and some other senders such as CRM_Activity_BAO_Activity::sendEmail() also honor the toggle. However, a message template sent to a contact via CRM_Core_BAO_MessageTemplate::sendTemplate() will always be processed by Smarty.
Relatedly, some tokens are only available in certain contexts. {domain.address} is not available with CRM_Activity_BAO_Activity::sendEmail() but is available with CRM_Core_BAO_MessageTemplate::sendTemplate().
This leads to some confusion because message templates and headers need to be formatted differently depending on whether or not they will processed by Smarty, but the Civi UI allows them to be sent both ways. CSS needs to be wrapped with {literal} {/literal} when it will be processed by Smarty; when not processed by Smarty, CSS should not be wrapped.
I don't have a solution for this at the moment, but I think it's worth flagging as an issue re: both user experience and developer experience.