easier refactoring - for the cost of having much more of it

flexibility saves the effort and allows doing more of the Actual Things

The Actual Things being mostly fixing technical debt introduced over the years by not making invalid states unrepresentable

This is what I’ve found as well. The actual things are fixing a lot more bugs or reimplementing the state checks all over the place.