It sounds like you're agreeing with me. What I said (or meant to say) was that if you get a fresh object from the DB (by bypassing the cache), the cache won't be updated.
If you are getting the object with a parameter for a specific caching action, why can't you call save with a different one?