I have bootloader burnage!
You know what it was?
No, of course you don't, or you'd have told me already
It was the socket on the ISP shield.
I had used some headers before (like on the Arduino) so the chip was easier to insert and remove, so less chance of bent pins. It turns out that if you use a pre-used chip, with the pins in a more vertical alignment (after having been used in a DIL socket) they make good contact. If you use a brand new chip, with the pins splayed, as they are, they don't make good contact.
A proper DIL socket is now in its place, and it worked perfect first time.
I'd rather have a ZIF socket, but I only have one, and that is part of a test jig for my LED boards. Maybe I should invest in another...