You can indeed write buggy/unsafe code in any language. But it's a lot easier to do in notoriously unsafe languages like C/C++, which for some maniacal reason we seem to have based the world's digital infrastructure on.
C++ was a terrible, terrible mistake.
I'd argue it's several things, these two things included.
To screw up so legendarily requires a concert of bad decisions.
Yes. The term "normalization of deviance" comes to mind. Even just a phased rollout would have caught this one with just a tiny fraction of the damage observed.