Long lived iterators will be penalized by many updates to the same bucket. Is that a problem?  

If buckets would first point to a list of keys and then for each key to a list of versions and we'd track the minimum version of any open iterator we could use that to discard old versions whenever we walk the chain of records.