The more I push the limits of iMovie 4's capabilities, the more I'm astounded at how rickety the thing is. I just completed a complicated project for an upcoming Macworld CD and, in addition to the usual slow-to-a-painful-crawl typical with projects that contain more than a couple of dozen clips, effects, and transitions, I discovered new ways for iMovie to muck things up.
In this case, I performed a lot of audio tricks and iMovie responded with a few tricks of its own. For example, I repeatedly employed the Paste Over at Playhead command -- a wonderful feature (at least in theory) that pastes a video clip over another clip yet maintains the audio from the first clip (imagine a reaction shot in 60 Minutes that allows you to hear the speaker while showing you the interviewer and you get the idea). I also pulled some audio clips from the movie's Media folder, took them into another application for processing (added reverb), and then imported the edited audio clips back into iMovie.
The result? When I invoked Paste Over at Playhead, the sound extracted from the original clip was actually an audio clip from a different part of the movie. By selecting Undo and then repeating the Paste Over at Playhead command, iMovie would insert a different audio clip the next time around -- the wrong one, as it usually turned out -- but by repeating this Undo/Redo process, iMovie eventually cycled around to the correct clip. The program finally became so confused that it would insert old audio when I attempted to record new audio with a microphone.
I suspect that I was messing around in forbidden territory -- pulling those media clips and reimporting them under a different name may have confused the poor program.
As much fun as it was to undo and repeat my actions, I found a better solution: Save, Quit, and Relaunch. When I next launched iMovie the Paste Over at Playhead command worked as it should and performance sped up -- at least for awhile. When it bogged down again or became audibly confused, giving the program a time-out via the Quit command helped put iMovie's house in order.