I would say there is a fair share of cases where programmers were told it is UB when it actually was a compiler bug - or non-conformance.
For example, people showed me
extern void g(int x);
int f(int a, int b)
{
g(b ? 42 : 43);
return a / b;
}
as an example on how compilers exploit "time-travelling" UB to optimize code, but it is just a compiler bug that got fixed once I reported it:https://developercommunity.visualstudio.com/t/Invalid-optimi...
Other compilers have similar issues.
That's a great bug you found, and of course it is a compiler bug, not UB.
99.9% of the bugs I've dealt with of this sort were just pointer aliasing. Or just use-after-free. Or just buffer overruns.
The median programmer, especially in the good ol' days, wrote UB code about once every 6-10 hours.