1. If the cleaner/fix it program is supplied by the software/hardware manufacturer to correct problems than I have no problem with it. They know what their program does and how to fix it. OK.... maybe not Symantec
2. Regarding your general cleaner/fix it programs. In many cases the cleaner/fix it developers have no idea what a given program's reason is for doing something. In most cases this involves Registry entries. A developer can decide to use a non-existent file name to set an option or keep track of something, it's entirely up to him/her. Along comes your Registry Cleaner and bam it deletes this entry because the file does not exist on your disk. Result.... the program doesn't function as it should, if at all. I see a lot of entries in the Registry that look like file names but upon close inspection are clearly used for some other purpose.
3. All cleaner/fix it programs should show the user what it is about to do and let the user decide whether to continue. This in conjunction with saving backups of anything that is about to be changed, whether it's files or Registry entries. A full Registry backup is not enough. If you ever need to use it to fix a problem, well after the fact, you will lose any new entries.
4. Only use documented methods to clean/fix. The developer's assumptions about the way things should be cleaned/fixed can lead to disaster.
5. Caveat Emptor was never more applicable than with cleaner/fix it programs.
6. Only use them if you absolutely must and realize the possible consequences. Once burned, twice shy.
Stepping off soapbox......