Supply check=True and the script will barf on subprocess failure. Another useful upgrade.
But realistically it's rarely that simple and even when it starts that simple it will grow to not be.
The downvotes are a very disappointing attitude.
I agree that some work is better suited to a real programming language, however the driving force isn't the problems you speak of, which are trivial, it's when the logic/control flow of the overall problem becomes more complex.
It will try to prevent you. It isn't perfect though, and whitespace errors are only the tip of the iceberg.
Shellcheck doesn't tell you to enable pipefail for example, so there's a huge foot-gun.
Pipefail itself is kind of impossible to use correctly anyway.