Currently my smushing-store design doesnt handle unsmushing. This isn't a big problem for my needs currently, but conversations with Steve Harris indicated that it's something required quite frequently by his customers.
Given that its not a common thing for me, I need a solution that doesnt affect query speed (e.g. so don't want to use a sameAs indirection table for each URI component of each triple) - ideally I want to load any penalty on the unsmush action itself.
Am thinking of 3 extra columns (s,p,o) on the triples table, unindexed, with the original assertions in them (before smushing). An unassert of an SIA of IFP would revert the affected triples back to their original asserted values, then reapply the smush.
Actually, having consulted Steve, putting the original assertions in another table (fk'd to the triples table) would probably be more performant, since it would reduce the size of the all-important triples table, and enable better caching by mysql.