In the 80s, we expected to actually code most of a system ourselves. (even in the mid-90s, I personally recall a startup where we had less than a handful of dependencies on the day we sold)
Nowadays, I gather[0] large numbers of people largely develop by plumbing together a bunch of dependencies.
When it's mostly your own code, guard rails may be redundant. When it's mostly Someone Else's Code, guard rails become effective, if not required.
When it's mostly your own code, there's a lot of crunch code[1] relative to parsley code and glue code, and well-meant guard rails may pose obstructions. When it's mostly Someone Else's Code, there's a lot of glue and parsley code relative to crunch, and guard rails provide a handy place to hang all the plumbing.
[0] if HN can be believed
[1] for definitions see https://news.ycombinator.com/item?id=32498382 . I am confident gumby (along with most —if not all— of this thread) will recognize the latinate names "glue code", "parsley code", and "crunch code" go by, when they're at home.
(Note also that 50 years later, we finally have the hardware to use languages like CPL or ALGOL 68 as they were originally envisioned. Thanks, EEs!)