It's a subtle point, but I would describe "end to end" as covering the humans on both ends. Your WhatsApp client on your phone participates in the key regeneration and/or key update without user interaction. WhatsApp's default UI configuration doesn't notify anyone about key changes. Defaults matter, defaults for secure software matters extra. Nearly no one enables this notification feature.
And even if they did, the client helpfully sent old messages encrypted with the new key. Even when you are notified, you're notified after the fact.
It does only exist on your device. Sadly, the WhatsApp client will receive a message from WhatsApp backend: "Fred Smith got a new phone and you should trust this new public key from Fred because I say so. Fred would love to have all the context so please re-send the old messages but encrypted with this new key." The WhatsApp client helpfully complies and hopes that Fred really did get a new phone and it's not Eve who somehow tricked WhatsApp into believing she was Fred. Or maybe WhatsApp was compelled by a lawful order to make it look as if Fred got a new phone.
The WhatsApp client never requests or even informs the user that this event took place. Though it is possible to change the config opt-in to get informed whether this occurred, it is not possible to deny the request for old messages.