This is almost but not entirely true. Consider
f x = error "f is not implemented"
Clearly, f _|_ = _|_, so f is strict.
f (error "bang!")
might, depending on how strictness analysis proceeds, generate an "f is not implemented" error or a "bang!" error. But that's only observable at the IO level, and the optimization is considered important enough, that potentially generating a different exception is allowed.
I think this paper covers some of the details:
http://research.microsoft.com/en-us/um/people/simonpj/papers/imprecise-exn.htm
-- ryan