Thanks, Pascal and Goh, for your replies. (Your messages did not land in my mailbox, hence this self-reply.)
> Because the old core image lacks a symbol required by the new module. I had assumed the symbol had been present in GRUB for a long time. This was wrong. grub_disk_native_sectors was renamed from grub_disk_get_size somewhat recently. I think this rename provides half the answer. The other half probably has something to do with the storied history of these machines. They were updated in-place from a previous Debian major release. Something may have gone wrong there. Perhaps we somehow ended up with an old latent core image on one of our disks -- a core that was built from before the symbol rename. Anyway, yes, it seems this was another case of a core-module divergence.
