Amazing (but not surprising) how polarised opinions are on this. I honestly believe there was nothing sinister going on at Apple and their main failing was a poor specification set for the iPhone 6 and onwards and poor ethical reviews.
Belief #1 - it is far more preferable for a phone to be throttled that suffer from apparently random shutdowns. Imagine you need to make a 999/911 call but your phone dies despite showing 40%+ battery life and refuses to turn on until it is charged. I know there are a lot of people that say they would choose full power for a shorter runtime, but think about corrupting a game save/important document by the phone turning off mid save/send and the phone refusing to turn back on until you can get to a charger.
Belief #2 - as mentioned in a previous post, Apple seemed to cut the safety margin of voltage/current in the batteries. This then manifested in batteries with >80% capacity that could not access the required current and shut down and were throttled. For some reason, this hasn't been sorted out in the iPhone 6 --> 6s --> 7 improvements. I suspect this is why so many people were turned away from Apple when requesting a battery analysis - their capacity was >80% and the Apple battery diagnostic can't see issues with current/voltage draw.
Belief #3 - batteries degrade over time. The fact that Apple guarantees the batteries to maintain 80% capacity after 500 cycles is quite good. This should equate to around 2 years. It is similar to tyres on a car - they should easily last 4-5 years, but if you put lots of miles on them and rag your car around, they will wear out faster.
Now, I think the fix Apple put in place was suitable technically, but I don't think it was properly examined ethically - as people have mentioned again and again, one outcome of a slower phone is to upgrade. I don't believe that Apple has acted unethically, but that they didn't properly scrutinise the ethics of the fix in regards to possible outcomes (i.e. unplanned upgrades in place of a cheaper battery replacement).
To me, the $29 battery replacement is a fair solution but I would like to see Apple improve the standard warranty around the batteries - the 500 cycle/80% limit should be extended to 2 years so if you go to Apple on day 730 of ownership and the battery has carriedout 499 cycles and is 75% capacity it should be replaced free of charge. Similarly, I would like to see a diagnostic test for current/voltage draw and a similar warranty period for this - so even if your battery capacity is 85%, if you phone has to throttle to avoid shutdowns you should get a free of charge battery change within 2 years. Outside of 2 years, $29 is a very fair price for a replacement - a replacement at Timpsons in the UK (widespread key-cutting/cobbler business) is £30 so Apple are not ripping anyone off and this could force the price of a 3rd party battery swap down further. Those reporting iPhone 7s being throttled after 13-15 months, should certainly be entitled to a free replacement.
To those, expecting their device to remain as snappy as new after two years, I believe you are misguided - increased behind the scenes software will always pull away CPU cycles as will bloat caused by upgrading the OS every year (e.g. the "other" section in storage), but there is a big difference between an extra 0.5 seconds to launch an app and running a 50% of the initial speed.
The hard part of this is people who forked out $600+ for a new iPhone - there is no way to know whether they would have upgraded anyway or settled for a new battery. To me, the best compromise would be to maintain the $29 replacement cost permamently for phones older than two years old - this way, even if people unwittingly upgraded, at least they will keep their new phone running well beyond the expected lifetime of 2 years.