Richard - By 'campaign sync with programs', I assume you're referring to the capability of creating/associating SFDC Campaigns directly through the Programs itself, correct? If yes, you'll want to note that as soon as a lead becomes a member of a program, they'll be synced to an SFDC campaign.
This might become an issue if you'd like certain Program members to stay in Marketo until they achieve a particular progression status. Example: Let's say you're doing a Webinar, and do not want the Registered members to go into SFDC, and only want Attendees/No-Shows to be synced to SFDC. Since Registered members are still members of programs, they'll get synced to SFDC via the inherent Marketo Program-SFDC Campaign sync functionality. To work around this, you might want to not use the 'campaign sync with your programs', but might rather want to explicitly use the '
Add to SFDC Campaign' flow step in campaigns.
Other than this, there's no other caveats to the 'campaign sync w/ programs'.
Hope this helps!