As a best practice, the leads should be first created in Marketo and then should flow to SFDC o
I don't agree that that's "best practice." Some orgs require that all records are born in SFDC first, and that's totally fine.
Amit, good point and when practical we start all leads in Marketo, but there are exceptions. Ecomm requires a lot more fields than we need in Marketo, API calls for each Ecomm step plus integration with our billing system. We've thought about APIs to both Marketo and SFDC, but at this time we think the flow is more direct to go into SFDC. If the lead is known, we update the existing record. And if the lead is unknown we are successfully syncing with Marketo. The only missing link is creating a connection between anonymous data in Marketo when a lead is first known in SFDC.
Similar scenario with Drift. Drift offers better integration with SFDC for appointments and chat transcripts, but then you lose the anonymous data that is stored in Marketo.