In our org we regularly end up with duplicate opportunities due to small problems in our API integration (out of my control, unfortunately, but I am responsible for much of the de-duping -- hence my user name).
Usually the opps are not perfect dupes; one of them will be the original (that the sales rep has been working on, has related activities, links back to a lead, etc). Then when the sale closes, the integration creates a whole new closed won opportunity with lots of details about the product in many custom fields. I have to clean this up by copying the field values from the new opp to the original, then delete the new opp.
Obviously a "merge opportunities" function would save me a lot of time here, so I'm considering building one with Apex/Visualforce. What I'm wondering is, what is the reason that this doesn't exist in vanilla Salesforce? Is it a big enough issue that there is something I have to watch out for in trying to build this myself?