Ever site have content for cache or pregenerate.
Why cache need to be part of optimization? - if you know what you do and how it is very fast way to lower server load. So, after load is lowered you will have time to think about logical optimization ;)
What we can cache?
- content
- sql results
- functions results
- logical results(which isn't design as separate functions)