Prior to the caching digest, they (37signals) maintained a version number for each cached partial. Whenever a partial changed, the version number (and all parent encapsulating partials) had to be bumped so that users would receive the latest view update.
Now the partials that are cached store an associated md5 of their contents. If the md5's don't match, the view cache is automatically invalidated and regenerated. Brilliant.