To verify whether the flash content is identical to the that of a given hex file you can use avrdude:
specify the given hex file, and as memory operation specify v for verify, like this:
... -U flash:v:path_to_hex_file.hex:i
This avoids the problem that avrdude writes the hex file with a different record length compared to the hex file produced by building the bootloader.
That said, if anyone can suggest a good (linux) utility to convert intel hex to binary, I would be interested. (so you could just compare two differently formatted hex files).