The reason I separated caching is because I see a lot of instances where companies are forced to introduce pure caching layers, primarily to offset deficiencies in the underlying storage engine. I tried to highlight in the article that in many cases, the DB layer itself may be sufficient to either obviate the need for complex caching (e.g. it is fast enough that caching is irrelevant) or natively include strong caching, in which case a secondary caching layer is indeed likely irrelavent