It has also failed enough times for me, but luckily it often works like "on error resume next" do the package manager doesn't get stuck in a bad state.
Regardless, installation on Linux is often just dropping some files somewhere and perhaps a modprobe.
In Windows you have so many things you can do: filesystem, registry, COM registration, GAC, file associations, etc.
It's not really that dissimilar. People like to act that Windows is so complicated and convoluted when in time the Linux desktop has invented all the same concepts.
registry -> dconf
com registration -> dbus objects
gac -> shared libs
file associations -> dconf settings
windows scheduler entries -> systemd user session
Right, but most of these entries are still (1) only files or (2) are almost never touched by most packages.
And the GAC isn't really comparable, perhaps WinSxS is comparable, but the GAC requires a specific API and isn't a matter of just dropping a file in /usr/lib.