A verify confirms that every byte has been written correctly. It is like reading every byte from the flash and comparing to the expected values (or the hex file values). A checksum just does an abbreviated check. Using a checksum instead of a verify adds some risk to the process.
For example, let's say that one of the bytes should have been 0x3F and a second byte somewhere in the Flash should have been 0x3E. Also, say that the programming failed by dropping a bit from the first location, making it 0x3E and also failed by adding a bit to the second location, making it 0x3F. This would fool the checksum algorithm because the 16-bit sum of all of the bytes would be the same. But this failure would be detected with the verify procedure. The odd of having two bits wrong that cancel each other is small, so we can probably ignore it. However, there is the possibility of a failure not being detected.