it's called
desync(hronization).
say, the input recording (the movie) is stored in a separated place from the savestates. you use frame advance (frame by frame playing/recording).
you record up to frame X, savestate there (slot 1), creating segment A. now you keep recording up to frame Y, savestate into slot 2, that makes segment B.
now you load slot 1, and start doing the segment B differently, let's call it B'. if you accidentally load slot 2, your movie is screwed : the input recorded so far, and the state the machine is now at, represent 2 different branches (B and B') and the sync is lost. if you start recording again, you will append incoherent data to the movie, since the new moves you're recording only have a meaning into a context where the previous input cannot lead to. playback of the movie will show the intended movie up to frame X, then the character will do crap.
if you have bulletproof recording, the movie that brought to the state in slot 2 was saved within the state, and has been loaded with the state, keeping both in synch.
hope that was clear enough (I neved tas'ed <_<).
I highly recommand that you get in touch with upthorn. he already coded rerecording features into others emulators, he will be able to answer programming questions, as he said he wants to help the community to get a sms rerecording emulator.