The reasons are simple: Maintainers' resources are limited, so
maintainers restrict themselves to actively working the release they are
actively using and try to avoid to touch anything that is not "reported
to be broken" (The old: "don't try to fix what ain't broken")
In the end you see a policy of "If it builds it goes to FC(n+1)", "If it
seems to work it goes to FC(n)", "If a change is harmless it goes to
FC(n-1), if it seems scary, it doesn't".
Frankly speaking, I don't see what's wrong with this.