I assume you meant GDB, not GCC, right?
Seems like a deficiency in GDB (and maybe LLDB too), not in the kernel or x86.
I do mean GCC. Whoops.
Deficiency or not, it breaks debugging. I’m willing to pay a cost of one byte per breakpoint as a workaround.
And GDB has far more outrageous, if less-frequently hit, bugs in its architectural state handling. I’m not holding my breath for a fix.