"they’ve been cornered by their own past decisions." - there is a whole spectrum between being cornered and having suboptimal code with tech debt. Architectural thinking can help being minimally cornered. It is possible.
I usually imagine software as mega-multidimensional artifact(s). In such understanding there are two different problems:
- when the artifact is "too long" in some dimension to be moved around
- (as you also point out in the article) some dimension has been obstructed
(how to call those dimensions and what they are - left for the reader to imagine)
If you visualize that somewhat in 2-3 dimensions, it is clear, that even in 2-3 dimensions it is rarely a problem to keep the box both compact and addable.