Somehow lots of software functioned before the advent of XDG. Lots of software that knows nothing about XDG still functions.
These env vars are explicitly only (with the exception of XDG_RUNTIME_DIR) for when the user cares to override them.
Yeah, sure, that's what the spec says, and that's what is passive-aggressive. There is a complicated system and it is opt-out, which is considered abusive whenever anyone else does it.
I actually like XDG, and I use it even when I have to specifically tell packages to do so. I have contributed patches to unrelated software for XDG support. However, I don't agree with the common online strategy of shitting on software that doesn't follow a spec that is deliberately more complicated than it needs to be.