Assuming that almost all packages depend on e.g. roscpp the only chance to breaking downstream packages is if all packages including and below roscpp are switching from boost to something more specific for an already released distro. If only one package limits the change to Noetic (since it already needs a separate branch for other reasons) downstream packages will still have boost available in Kinetic / Melodic. Therefore I think the chance for regressions is fairly low.

What would be the advantage of that? The first step already affects downstream packages. The second step is local to the package and is easy to test and doesn’t affect other packages - so why should it not be done at the same time?