That's because the Arduino bootloader doesn't use the hardware signature in its sketch-loading
protocol, it uses the signature bytes compiled into the bootloader binary when it was compiled.If you use ICSP to burn a bootloader you have to match the hardware signature...
Yes, exactly what I discovered via T&E.