You can clone the list from the Marketing Activities section to the Lead Database and vice versa.
Generally if you are going to use a list more than once, you would probably put the list in the Lead Database and if you're only using it once, you would store that local to the program.
We want to make sure we are being smart long term.
Should we keep lists we use to drive our various program-specific smart campaigns at the program level or in the lead database?
We create smart lists and static lists for out promotional campaigns. We then point the smart campaign to the static list to make sure they run on time. Is there anything wrong with keeping them at a program level if these are program specific?
I would keep those in the program, yes.