Software doesn't think. It cannot reason. It cannot make decisions, despite the terminology being used in development. Software can take inputs and do something specifically programmed with those inputs then output something specifically programmed. There are always situations where the inputs are incorrect (faulty sensors, malformed inputs, etc.) or situations where the developers truly didn't anticipate something, both can lead to unexpected behavior. Rarely does a software error result in the software doing something expected, however the wrong expectation.
Your presumption that SGsOTI thought of exceptions that Boeing just didn't think of or intentionally allow these systems to catastrophically fail is simply ridiculous. I don't have a clue why you think this crazy chain of software failures, switches in the wrong position, sensors that no one tested at temperatures that are typical in may parts of the world, GPUs (what do GPUs have to do with a loss of thrust while departing?), blah, blah is likely. Yet, you can easily dismiss that humans, who can think and reason and make decisions might misinterpret valid inputs (I feel a loss of thrust, it must be this) and incorrectly output something (cutting fuel to restart engines, cutting the wrong engine in a single engine failure, manually deploying the RAT).