Problem: when users install extensions, they often don't pay attention to the fact that "update.php" just printed an error.
For example, consider the following output from update.php:
Could not find composer.lock file. Have you run "composer install --no-dev"?
... do non-experienced users know that this is a fatal error? No, they don't. As the result, they believe they already did the "run update.php" step, and they expect the extension to be installed.
Then they send bugreports to extension developers like "your extension doesn't work: says that SQL table [...] doesn't exist" (where it doesn't exist because update.php never got to its creation, but the user doesn't know that).
Possible solution: print REALLY LOUD AND NOTICEABLE error message when update.php fails for whatever reason.