Diversity is welcome. In my opinion designers should always consider the worst situation that can result from the failure of a component. Part of this should include determining what events might be missed or ignored if a particular component fails. The system's reaction to the component failure must take these events into account. For example, a microprocessor might be used in a robot arm to monitor an electric eye that detects when something is in the path of the arm.
Computer control has the potential to allow greater flexibility than previous technologies.
It is essential that such systems be designed so that their reaction to failures will be predictable and safe. It was surprising enough to remember, but not interesting enough for me to investigate further. If a reasonable person would agree that bugs exist in much of the present software, then it seems that it is also reasonable that features be built into the system to protect against such bugs. Non-computerized versions of such machines usually contain interlocks to prevent such catastrophic behavior. Of course, checking routines can also have bugs in them, but they are often much simpler than the original software and provide an independent check that reduces the risk, probably significantly.