On the Content with Style blog there's a new post by Pascal Opitz talking about a suggested caching pattern for use with the Zend_Cache component of the Zend Framework and the __call magic method.
The initial thought behind this is that a model should be able to return calls either uncached or cached, without initializing some cache object every time. It should be easy to switch between the two calls, and the cache should be coming with the model object already.
He compares the old way - making a new cache object and performing actions based on that - to his new way of already having a cache object as a part of the model to help with storing any information you wanted anywhere inside. He includes a code example showing the method, basically a call to create the cached object in the constructor and, when a method is called, the __call traps it and dynamically attaches that cache object to it.