Because Linux isn't "an OS". It's a kernel made by one set of developers, combined with a bunch of operating systems made by a second set of developers, which pick and choose compositors/window managers/etc. often made by a third set of developers. Each of these sets of developers are pretty good at solving bugs that live entirely in their "domain", but when there's an issue which crosses these interface boundaries, there is nobody to "assign priority", never mind actually work to fix it.
(Not to mention, systemd demonstrates that trying to solve these kinds of pan-system problems earns you little gratitude but tons of vociferous hatred, so people are not inclined to do it.)