I'm going to share my opinion, based on how my company assign staff to the projects. Obviously, every company has its staff management.
First question is: Do I have an architect assigned to my project?
If yes, then architect sould give to lead programmer the basics of the strategy. Or design it atleast. When architects are involved into a project, they are the
main responsable of any important techincal decision. To define the architecture and the modules that should be, with their respective features, etc... Lets think on a huge enterprise application. We rather let architect to make these decisions.
Finally, lead programmer should be capable to take it forward. If our leader programmer has experience on such tasks...
Leader programmer is often seen as a Senior Developer (experienced and high autonomy) but it might not be always in that way. Leader programmer can just be someone with high knowledge of the product/system/application. May be just knowledge related to the business. Might be also profident on project's technologies (tools, frameworks,etc.) but it doesn't means he/she has skills of software design or architecture.
I can be an excelent mechanic, but it doesn't make me Engineer. Right?
Lead programmer skills/capabilities aside, the important thing here is to know each member's role and responsabilities.
As @Stephen C said:
It is up to management to decide
Finally, if there's no architect, there's no question. The most experienced developer should be in that charge. However, Project Manager should be aware of his/her leader is not an accomplished architect and it's a risk to take in account.
Your question is open to many answers and probably only few ones will suite in your case. So don't think on these answers as law.
Be flexible.