If you (rightly) preserve code’s sensitivity to alteration for the sake of the computer, then you also have a responsibility to offer clear diagnostics to the programmer. Clang gets this right: people make mistakes, and often they’re hard to spot—no need to make it harder!
If you've never worked with Joe, this is the kind of nonsense he does in his sleep.
I first worked with Joe four years ago. He joined the team knowing no Ruby. What did he do his first week? Diagnose and patch a pretty big bug in MRI's threading implementation.