That’s not a reason, unless the platform is changing in incompatible ways, which is exactly the problem, and a largely avoidable one, as other platforms demonstrate.
There are ways to still maintain API compatibility in that case (Windows does it all the time), and it’s also not a reason to require projects not affected by those changes to recompile with the newest Xcode version each year. I’m maintaining a Swift library/framework that doesn’t use any iOS APIs at all, only basic Swift standard library calls, and I still have to produce a new build each year from unchanged source code so that the library can be consumed with the new Xcode version. That’s just insane.
Testing with a new OS version shouldn’t (and usually doesn’t) require rebuilding the project. The need to rebuild is imposed primarily by the Xcode releases here, not by the OS. And that seems entirely unnecessary. Note that breaking compatibility and having to rebuild for new Xcode versions are two independent and orthogonal issues here.
I won't continue this discussion about maintaining compatibility. This is fundamentally a philosophical issue. I agree with the sibling comment that it is the job of an OS to provide stable APIs across versions. It requires some effort (as a long-term library maintainer, I'm very well aware of this), but it is not an impossibility at all.
If I'm aware of an issue (be it tracking, or power consumption, or ...) with the older version of the app and want to run it despite that, that should be my prerogative as a user.
Closing off APIs that facilitate fingerprinting is just one of many incompatible changes Apple has been making.
Some other reasons are deprecating power hungry technologies and asking for more permissions to access private data.
These are changes that benefit users on a massive scale. Why shouldn’t a developer be expected to respect users needs?