In general, any kind of caching or prefetching should be left alone, as most programs (including operating systems and web browsers) are designed by reasonably competent people, who put those things in deliberately to improve performance.
There are some special cases that revolve around privacy, corrupted caches, and cache behavior that's known to be incorrect (such as really old versions of Internet Explorer that let the cache get so big that it literally took longer to search through than it did to retrieve the page again), but in general, caching is done for your own good, and disabling it will slow your system down.
The font cache is an example of this. The only time you'd clear it is when you observe something obviously attributed to brokenness, such as fonts not displaying correctly, or obvious hangups with font loading. Same with the icon cache - you know it's time to rebuild it when half the icons on your desktop are not displaying correctly, or flashing generic "document" icons for 30 seconds as the desktop's loading.
Beyond that, while CCleaner as a whole is useful, many of the functions in CCleaner are no better than placebos if not actively harmful to performance. Know what the tool you are using is supposed to do and why you are doing it, lest you realize in the middle of shooting yourself in the foot that the tool you are holding is a gun.