Part of this is your Smart List, part of it is your Choice Step.
if your Smart List says "members of Engagement Program=T for Program X" it will look at everyone in Program X.
no problem so far.
Change Program Status (or Change Engagement Stream, etc) you are saying that if someone is a Member of ANY Engagement Program, then Change Status in Programs X,Y, or Z to "Unresponsive" which MAKES that person a Member of the Program.
The way to fix this is to NOT run this for every program, but only as a campaign within the Engagement and only look and act on people for that Engagement.
Another way to handle this, which is riskier, is to use a set of Smart Lists in your Choice Step. The Smart List says "Member of Program in X" and Not Was Clicked in Past 90 Days" to ensure you look at the right people.
Choice Steps can be dangerous because of the screenshot above where the Filter is NOT the same as the one in the Smart List you are used to.
Thanks Josh, I understand now that in the flow step the first line says: Member of ANY Engagement Program instead of Member of Program X. Found also the idea to change this: Member of Engagement Program \ choose which program . Till this is not created I need to build all different smart campaigns