This has been my strategy all along. I am always at least two versions below, sometimes more. I still own my iPhone 6, and get all updates. I bought it for 200 bucks, 2 years ago!!
Apple supports old devices well, but app developers seem to have different ideas. I upgraded my SE to an Xs recently, and I had the realization that iOS is not a bug-ridden piece of garbage... it's just that nobody ever tested their app for the SE's screen size and other capabilities. All the apps that I thought were buggy work amazingly on my Xs.
To some extent, I sort of blame Apple here. When you boot up an emulator, it's an iPhone X that you see. If it defaulted to the SE, I bet we'd see more apps that render correctly on its screen. But it doesn't, so we don't.
The faster CPU also eliminates a lot of problems. I am sure I am guilty of writing code that is only viable because I'm running it on a 32 core Xeon machine. So are app developers. The faster the CPU you have, the less likely you the user are to suffer because of their sub-optimal algorithm choice.