It's even worse than that: where's the code that's doing all the chucksumming and checking of checksums? Presumably it came from memory at some point...
Maybe it was read fine from the binary the first time, but the second time...
At some point you just have to hope.
If you can't trust your RAM, you have no hard truth to rely on. It's only probabilistic programing or living with the errors.
(Although, rereading the GP, he seems to be talking about corrupted binaries. Yes, you can catch corrupted binaries, but only after they corrupted some data.)