That logic clearly fails, though. You will never do everything to prevent a failure. (As an example, there are almost always stronger materials. Cost is a requirement,)
Though, your point here is interesting. Using curlies probably could have stopped that bug. Using static analysis that saw dead code definitely would have stopped it.
In this case, mechanisms (automatic checking for dead code) are vastly superior to good intentions (always using curlies).
I didn't mean literally everything. I mean everything that has more benefits than costs. I consider consistent curly brace style to fit in that category.
Out of millions of CVEs, one is plausibly related to this coding style. I don't think that's a strong argument for using the more verbose style. If we saw this all the time it might be a different matter.
I think it is a strong argument for compilers' -Wall to detect misindented statements directly following unbracketed conditional expressions, though.
Though, your point here is interesting. Using curlies probably could have stopped that bug. Using static analysis that saw dead code definitely would have stopped it.
In this case, mechanisms (automatic checking for dead code) are vastly superior to good intentions (always using curlies).