Winsxs is there for backwards compatability and to coordinate duplication of files (different versions of the same file). If you mess with this, you are risking losing access to your programs and perhaps even to your system itself. Here's some further information on winsxs: http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx. Winsxs is not a matter of cleanup - it's there to help protect your system. I would not mess around with it even though it does take up considerable space.
When Windows is updated, many obsolete files are deleted (there's a section of the upgrade where this is what is done); however, some files remain valid and are retained in their original form (even if they were created in 1998) - some functions just don't change and so the old versions are just as good today as they were then - not everything needs to be updated to constitute progress. Vista is quite different from Windows98 in a variety of ways (some good and some not so good IMHO).
Disk Cleanup should get rid of your .tmp files - I'm not sure why that isn't working for you. Still, I must admit I have some .tmp files in my Documents folder that were created by Office applications that weren't closed properly and Disk Cleanup doesn't seem to get them (I have to delete them manually). There may be others but to be honest I haven't searched since I have plenty of space available for my needs.
You can search for .tmp files on your system by using *.tmp as the filename in a full system search and then delete them manually. Here is how to do a full system search in Vista (it differs considerably from XP and prior versions of Windows) and you can't just do a regular search because it then just looks for indexed files and that almost certainly isn't all the .tmp files you have on your system.
To search the entire C: drive in Vista go to Start / Search Box and type in ‘<filename> or <foldername>’. As you're typing you'll see two hyperlinks appear just above where you're typing and one will say Search Everywhere. Click on that. That will do a quick indexed search and bring up a dialog box. Click on Advanced Search. Click on the location drop down menu and find Drive C: and click on it. Check the box "include non-indexed, hidden, and system files (may be slow)." Then click on Search. You will now be searching your entire hard drive for the specified file. And yes, it's not a very efficient way of searching the entire drive for a file but that's how it's done in Vista.
Here's some information (two separate articles) on compcln.exe which should tell you what you need to know about this program:: http://myitforum.com/cs2/blogs/cstauffer/archive/2009/05/30/vista-sp2-service-pack-clean-up-tool-compcln-exe.aspx and http://news.softpedia.com/news/Vista-SP2-Compcln-exe-and-Other-Notable-Changes-in-Service-Pack-2-99976.shtml. I provided this before, but you asked for it again so here it is. Keep in mind that this makes SP2 permanent - you can't go back to SP1.
Windows Component Clean Tool (COMPCLN)
The Windows Component Clean Tool (COMPCLN.exe) can be used to remove the files that are archived after Windows Vista SP2 or Windows Server 2008 SP2 is applied. It also removes the files that were archived after Windows Vista SP1 was applied, if they are found on the system. Running this tool is optional.
Installing Windows Vista service packs increases the amount of disk space that is used by the operating system. This space is used to archive files so that the service pack can be uninstalled. Typically, you should run COMPCLN.exe if you want to reclaim this disk space after applying SP2 and if you will not need to uninstall SP2. You cannot uninstall Windows Vista SP2 or Windows Server 2008 SP2 after you run this tool on an image.
This tool can be used online or offline. I don't know if this tool will work with obsolete XP SP remnants if there are any - but I know of no tool designed specifically to work for XP and a tool like this was available when XP was out (but I can't find it any more - only this one).
This can have implications on system repair/upgrade procedures which can only be done if the version on the disk is highter or equal to the version on the system and the only slipstream process I know can go back only one SP upgrade. In my particular case, it would be unwise to use compcln.exe because I could then not do a system repair/upgrade and would be forced in the event that was needed into doing a clean install instead. There are orher ways to save and/or recover disk space if it is necessary (as I've mentioned earlier) and I don't want to lose the ability to do a system repair/upgrade which saves programs, settings and data unlike a clean install which is the only other alternative if you need to reinstall the OS (and it happens - I see it here in these forums many times).
I realize this doesn't get to the root of your problem which is that Microsoft doesn't do a fantastic job of cleaning up after itself (similar to HP and quite a few other programs) - but it does have some tools which help (sometimes). Compcln is one of them
- but it's not one I'd use for reasons previously described (but if you're hard up for extra space and don't care that you can't uninstall SP2 or SP1 after you use it, then it may work for you). Windows File Protection is not one of the programs that's taking up extra space with "obsolete" files - it has a totally different function (http://msdn.microsoft.com/en-us/library/aa382503(VS.85).aspx).
I hope this helps.
Good luck!
Lorien - One - MCSE/MCSA/Network+/A+