Some people. Most projects I know of build -Wall and fix all the errors. Developers all run - Error. 30 years ago this was madness but compilers are good about fixing false positives and so it is reasonable.
It isn't reasonable to expect downstream (i.e. Debian) to fix warnings but developers generally do for code they maintain.
For my own code I generally -Wall -Werror and if that breaks a prospective dependency in a nontrivial manner I find a replacement. I'll also tend to go looking for a replacement if a prospective dependency breaks when compiled with either asan or ubsan. Why would I voluntarily subject myself to such shoddy code?
I perform my own builds with -Wall -Werror. But it is a kindness to users of your code to provide a build flag that excludes -Werror. This allows user who are building with a GCC compiler version later than mine to sill build the code without having to modify the build scripts.
The standard doesn't require compilers find all such cases. The standard allows it, but doesn't require it. There are many known cases where the compiler cannot find a case (at least not in a reasonable amount of time)
The consequence of not being required in the standard is that compilers may not implement it and if they do, they will likely have different implementations/functionality
The consequence of being required is the standard is limited to exactly what we are sure everybody can do today. If there are advances in proving C++ code the new advances cannot be used to tell you about more bugs.