I think the main blockade is the terrifying responsibility of risk analysis and proper costing of alternatives and taking them to management
Yes, that too! I shouldn't say "main blockade", I should say "a big blockade".
Grumpy system administrator can also be an external hosting company - then things can become a whole lot more difficult I can tell you. I've had sessions of hanging on the phone daily for weeks to get the idiots on the other end to fix stuff, sometimes trivial things. Not the kind of effort and mental workload that the average "programming is easy!" type of person wants to deal with and I've seen many a colleague spend lots of effort trying to work around having to do it. Without success of course, but year after year they kept trying.
We have planned migration paths, for software and scheduled implementations. Upgrades of the development platform coincide with planed migrations and usually some kind of hardware retasking or purchase to keep life cycle and versioning segregation. Occasionally we get the odd developer that for some reason goes rogue and makes a version coding error--or "mixup" thinking that it will be implemented on X platform when it is really Y--these are the small projects that usually are very informally treated by management and are basically--"when you're between this and that, then here a filler for the gaps". At that point they have to go back and refactor their code to work in the appropriate production environment. I did see one where it was significant... and there were job openings that followed.
I cannot see a scenario other than mistake on a small project where the entire version is misplaced or understood.