I've posted my experiences up on the GitHub issue, but here it is too:
I've actually noticed this in my kernel testing, but I never reported it
because I figured it had something to do with me going off script in
compiling my own kernels.
Anyway, what I've noticed:
It only really occurs whenever dnf removes an older version of
kernel-qubes-vm whenever dnf's installonly_limit threshold is exceeded.
If you up that number higher or don't reach it, it doesn't occur and VMs
set to use the default kernel get updated to use the new default kernel
whenever a newer version of kernel-qubes-vm is installed.
Specifically, a VM that's set to use the "default" kernel doesn't change
properly to a new default whenever an older kernel-qubes-vm package is
removed, even if qvm-prefs shows that VM is set to use the kernel
currently set to default in Qubes Manager. If that VM had been set to
use a specific kernel version prior to installation (i.e. not set to
default or to pvgrub2), it's fine and the setting stays after
uninstallation (although I never tested what happens if it's set to use
a specific kernel version and then you uninstall that version).
So I think it might have to do with the kernel-qubes-vm uninstall
scripts not cleaning things up properly, however, fixing that may not
necessarily fix any VMs that are currently misconfigured (in which case,
a user would need to toggle switching between kernels in Qubes Manager
in order for it to stick again, which is how I've been working around it).