I like that idea! There'd be no guarantee that the data is deleted though, since it'd be up to each node storing the data to remove it.
Another idea which I've had previously was that you should set this as a global value for your account - and then it'd prune the timeline for notices which haven't been repeated/favored/conversations which haven't been active in a long time.
However, I am not sure it should be default !gnusocial behaviour. But it'd be a good feature.