Discarding the presentation cache for ole client items is pretty simple using
IOleCache::EnumCache and
IOleCache::Uncache, however when re-opening the file the object will be empty. There's a catch here: you still need to cache at least one item (even empty like FORMATETC aFormat = { 0, 0, DVASPECT_CONTENT, -1, TYMED_MFPICT }) otherwise the object won't refresh and instead throw a OLE_E_BLANK.
The interesting stuff to do here though is not discard the cache but rather compress it (to PNG or something lossless like that) - I'm still researching on that.