There's a long backstory. At the time, both the ex's partner and my husband were very unwell. DH had had a stroke, which meant his emotions were more to the fore. He didn't show his upset in front of his granddaughter.
His ex was very controlling. She broke up the marriage by acquiring a work colleague as a boyfriend, but told all their mutual friends that DH had walked out on her. (He did. After she spent the night with the boyfriend on a work trip.)
When I say that the ex was "controlling", you have no idea... She even tried to gatecrash our honeymoon - but that's another story.
Because she kept the family home, their adult children stayed with her when they visited. Each of her partners became "Grandad". I married DH 8 years after he left his first wife. The grandchild was born 6 yrs after we married.
When the baby arrived, DH's daughter announced that I was too young to be a grandmother and declined DH's suggestion that I be an honorary aunty - so I was always called by my first name. Absolutely up to Dh's daughter and I never queried that. Neither did DH, though he was upset when he realised that the affair partner was "Grandad". (The ex's first boyfriend was also younger, but the ex always got her way and all of her partners have been "Grandad.")
Paradoxically, the daughter's partner was older than her - the age gap between her and her partner was the same as that between my husband and me, so I reckon that there was something more at play than my age - I think she'd believed the ex's narrative.
I think if the granddaughter had said "I meant John..." it would have been all right - but she just turned to my husband and called him by his first name. There was no ill intent whatsoever, but DH was hurt. He'd already been pushed out of so many things by the ex's affair partner that this mistake hurt when it shouldn't have. As I said, he was unwell, but he didn't tell his granddaughter that he was upset.
And no, he wasn't doctrinaire about how he was addressed at all.