skyjumper:
I had read other comparisons between hardware interrupts and pin change interrupts, and usually the hardware wins ...
Well, they are both hardware. I think my figures show that, other things being equal, the ISRs are entered in approximately the same amount of time. And if you mask off the pin change interrupt to a single pin, which you can do, then you don't need to check which pin it was.
As for the overhead, the external interrupts have the burden of the attachInterrupt intermediate function, which you can work around if you want to. The problem there is that you defeat compiler optimisation by using the attachInterrupt, because it doesn't know which registers to save.
I agree with the other stuff you said, generally speaking, and in appropriate situations, interrupts make life easier.