RE: Associating multiple Accounts to one Opportunity
A couple of other approaches in addition to what already has been suggested:
You could use the "connections" feature to associate various partners to one particular opportunity.
While you said you wanted to reduce the number of opportunity records, I would ask you if you would want to track different aspects of what each partner was offering? Maybe some were offering different components, pricing, services, etc. that would be unique to each opportunity.
What I have seen done in some CRM implementations is that a "master" opportunity record, and each partner will be related to unique "child" opportunities. You could then get fancy and implement rollup fields, track the average of all child opportunities, identify front runners, etc. When the master opportunity is closed, then use some custom workflow tools or have a dev write a plug-in to close off all the child opportunities.
Just some more food for thought, I also am a fan of keeping things simple. :)
If you are on CRM Online, you also might want to check out the upcoming Partner Portal component of the CRM Portal Add-On.
Cheers
Nick