Email Templates and Workflow

I can create an email template which, when sent to a Lead correctly fills in the $contact_first_name from the Lead first_name.
If this template is referred to in a Workflow, the $contact_first_name is substituted with   The workflow module is Lead. However, template variables lead_* get substituted.

Is it possible to define a template that can be used for both cases; direct email and workflow email?

I re-read the first line that lead name fields are substituted using $contact_* variables. This is the problem. It a convenience when sending email to Leads/Contacts/Targets that all name fields are called contact_*. However, AOW does have the same convenience (broken?) login but addresses the fields by their module names.

So we have a dilemma. Perhaps we could have fields such as $generic_name and remove the misnomer of convenience (and badly named) contact_* variable.

If the template parsing did not insert a   then we could write $lead_name$target_name$contact_name to achieve the same thing.

Any thoughts?