If I rename all of my programs to follow a new naming convention, will I have to edit my campaigns and smart lists that use the names of these programs (for example, the filter 'is member of program, program name is X) as well?
When an asset is used, it's program name is appended and it will auto-populate if the program name is changed. For example if you have the filter "member of smart list: Program A.Smart List A" and then change the Program A name to Program B, the smart list will auto-populate with "Program B.Smart List A" and it still references the same smart list.
There are some flow steps where this will not change - and you will need to make the change manually. Primarily any custom fields that could be populated with the program name. For example, those in yellow will need to be manually changed, while those in green will be updated automatically:
All elements in Marketo that you can control via the UI are referenced under the hood by a primary key value. So, changing the name has no impact on things.
Would be different for filters with "contains" or "starts with", as they will not update. If your naming convention changes significantly that's where your risk is.