I am writing as someone who has been involved in the production of residential metal roofing, including tens of thousands of projects, for over 30 years. My perspective pertains primarily to metal shingle roofs which are more forgiving of going over uneven surfaces than are some vertical seam metal roofs. Please keep in mind that some uneven surfaces can be so bad as to affect the aesthetics and sometimes even the function of the metal roof and, again, this can more often be the case with vertical seam metal roofs than with metal shingles. Each roof should be evaluated on its own.
The vast majority of installations I have worked with have been over existing shingles. The low weight of metal roofing is one thing that encourages this. The aluminum shingles weigh about 1/8 what asphalt shingles weigh and steel weighs about 1/4. In many cases, we are probably adding less weight back to the home than what the current shingles have lost due to granule wear and oil evaporation -- this is important to keep in mind.
Now, one thing to keep in mind ... new asphalt shingles should not be placed on top of old asphalt shingles. With most asphalt shingle manufacturers, doing so will void the warranty on the new roof. This is because the old shingles will not allow the sun's heat to pass so easily into the attic so the new shingles end up staying at a warmer temperature, shortening their life.
That is not the case with metal -- temperature does not damage the metal or the paint finish. The warranty on your new roof will not be impacted at all by going over the old shingles.
In over 30 years and thousands of installations over old shingles, I have yet to go back on a job later and find myself saying "Hmmmm ... maybe we should have taken off the old shingles." It just never becomes an issue. I have re-roofed personal properties with our products five times now over the years -- every time was over the old shingles.
I like going over the old shingles for three reasons:
1) It saves having to fill up landfills with old shingles.
2) It ultimately increases the thermal resistance (R Value) of the roof assembly, actually increasing energy efficiency compared to tearing off the old shingles. What happens is that some of the heat which does pass through the metal shingles now gets stopped by the R Value of the old shingles, rather than flowing direct into the attic. Otherwise, that heat will flow direct to the roof deck and into the attic.
3) It allows the property owner to spend discretionary dollars on a better roof rather than on removing the old roof and disposing of it.
Going over the old shingles also avoids the potential issues that can occur, like unexpected rainstorms, when old roofs are torn off.
Still, ultimately, it is the property owner's decision but I would have no qualms about going over a layer of old shingles. It's not uncommon to go over multiple layers either actually. On older homes, of course, I do put the caveat out there that if there are signs of an existing weight issue or old leaks, those need to be addressed and that may require removing the old shingles but that is unusual. Keep in mind, of course, that building codes require no more than two layers of roofing of any type.
The question of how this impacts energy efficiency was raised. In a typical year, approximately 90% of our roofs are installed over old shingles. So, virtually all of the energy testimonials we have received over the years were for installations over old shingles.
As far as substantiation of the energy benefits if the old shingles are not removed -- Unfortunately, that specific scenario has never been tested. I will add a couple of things though. The energy savings documented here by this homeowner were on a roof installation over his old shingles: http://www.classicmetalroofingsystems.com/about-metal-roofing/energy-savings/
Additionally, a few years ago, we were having product tested at a major test facility and, before the test, they wanted to apply our product directly over the old asphalt shingles that had been tested previously. They assured me it would not make any difference. My feeling then, as it is now, is that leaving the old shingles in place is actually helpful (as I have described above) and I did make them remove the old shingles because I did not want our competitors claiming we’d cheated the test by leaving them in place.