The point is, they aren't wrong. You will never get rid of all such edge cases... and even if you could, you couldn't afford to do so. The responsibility to make the larger process resilient to those types of bugs must exist somewhere, and at a higher level than engineering.
What's described here is not an engineering failure, but a process failure.
It's both. "Bugs are inevitable and unavoidable" is a defeatist attitude in software, albeit one that is accepted strongly and broadly.
It's an engineering failure if the designers did not fight for it. In my career as an electronics engineer and later as a software developer it was clearly part of my job to interrogate the specification documents and almost always the customer to discover what the system really needed to do and what edge cases the customer had ignored, forgotten, or was simply unaware of.
Yes it's a process failure but just like health and safety it is everyone's responsibility.