Christian,
A few thoughts for you.
1. If you really don't want to sync, then simply don't trigger a sync or connect your Programs to SFDC Campaigns. Marketo only syncs if you explicitly/implicitly ask it to do so OR if the Lead originated in SFDC.
2. I usually get around this issue by creating Lead Queues like Nurturing Queue, Prospect Q, Webform Q, Asia Queue...etc. I use these as holding pens for new leads that aren't ready for sales. I turn off all Marketo or SFDC triggers until the lead is sent to a real USER. I also setup situations where there is a Marketing Queue for evaluating leads by hand that otherwise qualified for sales (MQLs).
As for your initial question:
- SFDC campaign sync (overview screen of every program)This automatically syncs Leads that are members of a program to SFDC and tags them with the appropriate Member Statuses as they progress through the pre-defined program.
- hidden form field value (campaing ID)this is from a W2L form or a hard coded Marketo Form. Not sure why you'd keep doing this if you have Marketo.
- SFDC flow action "add to SFDC campaign"Explicitly syncs a record to SFDC and Adds the record to the SFDC Campaign and/or updates its Member Status