I have a many-many with an interesting wrinkle: in 90% of the cases, it's 1:1. Is it foolish to partially de-normalize in such a case?
Example: a "harvest" is performed by no less than one person, but sometimes there are multiple people involved, and we want to record that fact and be able to use it. So my "harvests" table has a "who" field that is a foreign key into the "persons" table, and a "harvest-person" table that only contains entries for when there are two or more people involved with the harvest.
This makes the simple case of showing who the lead harvester was very simple, but it complicates the case of listing all harvesters.
I mentally justify this denormalization by noting that the "lead" harvester is fundamentally different than the "other" harvesters, but perhaps I'm just deceiving myself. (The "harvest-person" table would need an "isLead" boolean, anyway.)