Salesforce themselves (a detail which might really help making a case at a customer) have put out the following:
Which officially deals with retail, but tackles the general problem of leads vs. contacts and Marketing Cloud quite well. This applies to many B2C contexts, but can even drive conversations in b2c.
In essence the approach is this:
Model a contact record type that does what leads are supposed to do, and use that instead of the Lead. If the Sales Cloud already makes heavy use of leads, then you would try and "convert" to such a model before Marketing Cloud is put into the picture. Make Marketing Cloud only deal with Contacts, even if Leads are in the Sales Cloud system.
One little thing to achieve this is creating a custom boolean field on the Lead Object which says "synch to marketing cloud == false" for all leads by default, then use it in the data stream's boolean filter for Lead:
'Synch all records where "synch to marketing cloud == true"'
Thus you'll have 0 leads but fulfil the technical requirement that "lead object has to be synched".
Here is the most relevant part from the document as a quote.
Because Marketing Cloud Connect creates a unique contact for each record, using both
lead and contact fractures the view. It’s more difficult to manage data this way.
Leads create a standalone Marketing Cloud Contact record.
● In Marketing Cloud, a lead is an actual contact and not a transitional record. You manage
profiles, preferences, consent, and compliance for each of them (independent of any
converted contact record).
● Merging and converting leads isn’t available in Marketing Cloud. A lead is a legitimate
contact in Marketing Cloud even after a lead conversion in Sales Cloud or Service Cloud.
It’s important to manage preferences and consent processes associated with the new
contact in a cross-cloud sense to account for the legacy Marketing Cloud lead.
● Leads in Sales Cloud and Service Cloud help with contact record data quality, but they
can damage the data quality in cross-cloud implementations.
Learn the advantages of using the Contact object instead of the lead object.
● Contacts can include multiple record types to simulate the lead conversion process,
similar to opportunity stages for an opportunity record. Account for other possible lead
integration points and include an archival strategy.
● A stable customer ID lets you establish one customer ID that spans all Salesforce clouds.
This ID helps with any use cases that require a lifetime 360-view of the customer.
● To support each phase of the contact’s journey using Lightning Experience, group and
present field sets with different custom attributes based on type.
● Stable record IDs retain the contact ID when the type changes. Custom flows create
records or propagation of duplicate keys across the platform, fracturing the contact view.
● You can associate contact records with multiple accounts (person and business
● Access Control creates a combination of page layouts, sharing rules, and custom profiles
to control the type and attribute visibility. Users who engage with only one type of
contact, for example, can minimize record clutter in the platform.
● Alternatively, you can use the Lead object to bring in, dedupe, and assign the data related
to people to your model. This process converts the lead to a contact record before using