А нельзя в каких-то случаях выстроить последовательность, обратную первой?
В смысле, бывают обратимые изменения, а бывают необратимые. Логично хранить ключевой кадр после необратимых, а от основного состояния достраиваться до ближайшего обратимого в обратном порядке, используя историю на уже имеющийся кадр, проходя путь с конца, а не с начала.