I see Apple simply being more conservative in their estimates and lowballing the number of years (eg: like the 4 years I quoted). This might actually make things worse because then, Apple wouldn't feel obligated to support said devices any longer than they were contractually obligated to. If they said 4, do you really want Apple cutting support off prematurely, even if said device were capable of supporting even more?
I feel that at the end of the day, there really isn't a formula or rule for this, and it would be counterproductive to insist that Apple come up with one. If the problem here is literally that Apple gave people unrealistic expectations by supporting their current batch of devices longer than they should have, then the issue here is people having unrealistic expectations of how long their devices should receive (useful) software updates. They should be recalibrating their own expectations, not kicking up a ruckus here online.
It's a sucky feeling, go run it off or something.
So I go back to my previous estimates, which I feel are pretty reasonable. Min 4 years, anything afterwards should be treated as a bonus.