The WINSXS folder is a
repository for symbolic links to the various copies of drivers and Dynamic link libraries and not for the files themselves. Due to the way that windows treats these links the size of the WINSXS folder displays the size of the files linked to and not the actual size of the link. If you check the size of the WINSXS folder,
from outside windows, you will be surprised at how little space it actually uses.
There was actually a method devised at the start of use of WINSXS that would allow you to move the folder to a second drive, (useful for some OEM systems where the system drive was limited to 30 GB), but in real terms this is not needed.
The retention of unused DLLs and Drivers after an un-install, is not the fault of the WINSXS folder but rather the conservative way that Windows and developers treat unused DLL and Driver files. Many un-install routines err on the side of caution and do not remove a "Shared" files even when it is no longer required, "just in case"
As has been said by others, do not worry about the reported size of WINSXS and if you wish to reduce the overhead due to restore points, do this within the Operating system (the
vssadmin command line), these are in any case stored in a hidden folder at the root of the drive and not the WINSXS folder.
Hope this clarifies things