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.
New features in the API indirectly benefit the end users (once apps start using them). But those new features don't have to be breaking, and that part doesn't help the users at all. It does help Apple spend less resources on maintenance, though.
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.