Hi Caitlin, one downside to what you've described is that a person whill be excluded from the whole engagement program if they've viewed a piece of the content that is contained within the program. This also limits you from reusing a form in a similar but different program. Overall, it seems like you're limiting yourself (and your assets) by setting things up this way.
Without knowing all of your assets and form setups, what I can say is that
Edward Unthank did an awesome presentation on this at Summit earlier this year. He uses programs within his engagement programs, and he's created the concept of "exclusion" status in a program so that you could mark someone as excluded if they had already downloaded a piece of content. Once someone is a member of a program (any status, including excluded) then they won't receive the program during a cast.
While this would require you to do a little bit of reworking, I think that it would allow for much more growth in the future. You might find that your current setup will grow to be very cumbersome or unmanageable as time goes on.
Let me know if any of this needs any further explaining!