The ABA problem is a real memory-safety bug class, not a theoretical curiosity — it's exactly why the Windows kernel's SLIST and .NET's ConcurrentStack use double-width CAS with a tagged version counter instead of a bare pointer. Facebook's folly library and Linux's RCU-based structures use hazard pointers or epoch-based schemes for the same reason: a freed-and-reallocated node fooling a CAS is a use-after-free in production, not just a benchmark curiosity.