We just started using the a Marketo Form for all forms on our website, so moving forward all leads will be merged based on email address. Our company is structured a bit differently and may cause us to run into some issues with this scenario. Please see below.
This is definitely an interesting challenge...one that we see quite often with our clients. First of all, great job for making the decision to keep your records consolidated! Working off of one record instead of multiple (purposeful duplicates) is more than half of the battle.
We worked with a client who acquired another company. The client was using purposeful duplicates and the acquired company was not. They used this as the impetus for doing a data cleanup. We developed a system whereby we created what we call the "inquiry process." The inquiry process relies on creating a specific task type with lots of custom fields. When a record fills out a form for one product line, we create a task and associate it to the person record. We use the task comments field to capture the custom fields on the task (since Marketo can't write to it) and use an apex trigger to parse the values in the comments field onto the task record. It's definitely a neat solution!
At the core of it, you need to find a way to relate multiple business units to one record using the objects Marketo can see and write to.
I hope that helps!
I would suggest that most of this lead routing and activity should be being carried out in a CRM like Salesforce. There should be a single lead/contact record where all the activity should be logged. On the Marketo side you could add things like alerts on all the different forms to notify the correct teams when someone has inquired about a specific product. They can then look at the record in the CRM and see the entire history, what the lead has done and all the other conversations they've had.
Marketo should only be used for all the marketing aspects, emails, nurture, lead scoring etc.. When it comes to storing data on all the different conversations and interactions a lead has had with sales and your company, that should live in a CRM.
I like the idea of alerts except that alerts aren't tied to a record in SFDC. That's why we went with the task instead. That way all of the form fills are captured both on the lead record and at the campaign level.