The problem with this is that every program must maintain a copy of every library/program/dependency that it depends on.
So, for example:
Each game you install needs DirectX, each game installs it's own copy of DirectX.
Each game needs OpenGL, so it install openGL.
Each games needs .net support, each game installs it's own version of .net.
A 10GB game install quickly balloons to 25GB each game ....
Repeat for each program.
On the other hand, if a program needs DirectX, directX is part of the "common files" part of the OS, it's already installed ... 40 games only need to install DirectX once.
That's not to say that DirectX can't be in it's own freaking "Program Files/DirectX" directory though, rather than littered across the HDD, and .net is installed entirely in it's own "program files/.net" directory.
Microsoft really to clean up their act, and sort out what part of windows is the kernel, and everything else is a program, third party drivers included.
Windows needs to know about the drivers/program, and that's it, it's loaded on demand.
A few key programs like (admin mode) explorer, task manager, regedit and msconfig need to be part of the windows kernel programs, in order to separate programs from essential OS utilities (for killing malware) .. although with intelligent OS design, virus's and Malware would be greatly reduced anyway.