Again, the complaint is not that they are not supporting old devices, it is that they aren't optimizing the OS' for all versions of active hardware. Good programming (I am a software engineer) requires optimizing the users experience, regardless of the device they are using. It is understandable that actions requiring advanced hardware are either not available, or run significantly slower. But when it comes to simple navigation of the home screen, this should not be noticeable to the user.
To me, it boils down to Apple trying to come out with a new major OS every year. The cycle continues, and seems to be getting worse. Every year the X.0 software runs almost perfectly on the latest hardware, but runs buggy on all older hardware. Apple then chases their tail with all X.X and X.X.X versions until, once again, they repeat the cycle... Just when they get it better for the older devices, they restart the cycle again. For example 8.4.x was great on all older devices, but it came out something like a month before 9 did, which again started the cycle until the last version of 9. So it appears like planned obsolescence, but in reality it is bad OS programming.
MS changes the major OS after years, does Service Packs a couple times per OS, but does security and small feature updates weekly. This cycle may not be perfect for Apple, but how about change the annual cycle to maybe a biennial (once every 2 years) cycle. This gives more time to optimize the current OS for older devices, while adding new features for the "s" device as a "service pack".
Remember there are FAR more older phones out in the wild than the newest each year, why not focus on the larger group of your customers?