It's possible for the source of a @scroll-timeline to change its meaning between frames. E.g. for source:selector(#foo), which element is identified by #foo can change if attributes are moved around or elements are added/removed. When this happens, the subsequent frame / updating-of-the-scroll-timeline-state should then reflect whatever the new DOM state is.
This applies to element-based offsets as well.
cc @majido