Note that similar to the !Nothing example, a bang pattern surfaces the error you'd expect
Prelude> :set -XBangPatterns
Prelude> let !1 = 2
*** Exception: <interactive>:2:5-10: Irrefutable pattern failed for pattern 1
So this exception is lurking about, but due to laziness and the equation's irrelevance, it doesn't show unless you force it with strictness.
I think the real expectation mismatch here is that numbers are not bindable symbols, so `let 1 = expr in 1` does not rebind 1 to be `expr` like a beginner might think.