Well, they seemed really sure and I was asking because that wasn't my experience but the docs said it was and I didn't want to be building my programs incorrectly.
It appears that Marketo fixed this - sort of - and has recently modified the documentation. The page where this paragraph was included has now been changed to this:
and the paragraph now reads:
If the engagement program calls a smart campaign within a program, people who do not meet the smart list criteria will not qualify for the smart campaign. They will move on to the next piece of content in the stream for the current cast.
So I decided to test this. The good news is leads no longer remain in an infinite loop when they don't qualify for a program. But, contrary to the new documentation, they will NOT move on to the next piece of content in the stream for the current cast. They will have to wait for the next cast. So they will receive nothing during the current cast for which they don't qualify.
My test criteria was as follows:
Thanks for confirming. Marketo claims they fixed that even before that docs update, but had never updated the docs until more recently.
There is an easy way to explain this - think of the "cast" as an action that is taken upon that lead, and the only two actions that can be undertaken are send an email, or run a smart campaign.
If you are running a smart campaign, if they don't qualify to receive anything based on the smart list in the program they receive nothing for the current cast and move on to the next cast. You can never have someone disqualify from a smart list in the current cast and receive anything in that same cast, the act of running them against the smart list in the smart campaign is essentially the cast.
I have tested this extensively, what Dan is saying above 100% works. So the change to the docs above is still not correct. I've forwarded some feedback to assist the team to change the docs.