OK, so this isn't that uncommon: it just requires a bit more nuanced understanding of how the Marketo-Salesforce sync works.
When a record is deleted from Salesforce, what's supposed to happen is that the sync sends both a data value in the form of "SFDC is Deleted = True" and an Activity Log action that Lead Was Deleted from SFDC. Likewise, the action is usually the only reliable indicator for Leads (and, depending on sync failures, can actually be logged multiple times.) However, there are many reasons why you may only get the "Lead was Deleted..." action or nothing at all if the record is a Contact. Contributing factors include:
- If a sync is interrupted at any point in time between Marketo and SFDC and a record is deleted, Marketo actually will not receive any notification that the record is deleted; it just fails to ever sync back due to having an old SFDC ID on file.
- Likewise, if a record temporarily isn't visible to the sync user, the same effect happens.
- If a record converts from Lead to Contact, it's a toss-up as to whether the converted Lead will pass the ID correctly to the new Contact. This one seems to be time-sensitive.
- If record types move around or are deleted, this seems to cause issues on deletion flags
- Records that come in and out of the SFDC recycle bin will have issues at times
The best way to check for records which were truly deleted with this discrepancy is to see which still have SFDC IDs for Lead/Contact objects and attempt to resync them. Those that fail will have been fully deleted.
As for the IsDeleted field only being synced to Contacts, this is typical and expected setup.