Historically, it was hard because there would be several breaking changes introduced into staging right before branch-off. This caused a situation in which significant additional work was needed to make the broken packages usable again across divergent branches.
For the 20.09, the biggest blocker was the weird mix of plasma + qt + systemd, which caused a lot of issues. When 20.09 was finally cut, we had an EOL version of plasma which required bespoke patches to work in the release; while unstable had the latest and greatest which didnât require any additional patching. DE schedules have been mitigated by pushing the release date until after the big gnome and plasma releases in RFC 80, so they will likely support our version of systemd and other assumptions which were made during development.
Further breakages are mitigated by RFC 85, in which breaking changes for packages which target staging need to be delayed until after the release. This is to prevent using staging-next cycles to fix something that broke right before release. Changes which target master can be iterated on master, which is much shorter (usually <24 hr) iterations; thus breaking to changes to master are always okay.