So when you tell the flash player to goto a frame in a movieclip it has to run through every single frame beforehand, even if nothing happens on those frames.
This is because flash doesn't store the state of any given frame but derives it from a set of commands that happen in sequence as the timeline progresses. i..e to know what the state of frame 1000 is, it must evaluate all the frames beforehand.
Now if nothing much happens on those frames the process will be a lot faster, but the more complex the animation, the longer it will take (lots of tweens and masking for instance and lots of things being added/removed from the display list)
This is a blessing and a curse really, it is what made swfs very very lightweight in the early days where bandwidth was limited and it was also very fast to play in a linear fashion. Sadly it has the cost of not being able to jump instantaneously to any given frame.
So in theory yes splitting up your long movieclips will more than likely improve things in your worst cases.
There are other options also though, for instance you could parse the display list yourself in a pre-process and store it as json or a custom binary format then rebuild the animations yourself. But it might not be worth the trade off.
With regards to you 1000 frames of items dilemma you should prob just have them all on one frame and hide the ones you don't need, or better yet don't have them in one mc if they are never displayed at the same time as it is just a waste and instantiate them a different way.
For what it is worth I wrote a gpu powered vector renderer for flash/air a while ago but never got around to finishing it completely due to other commitments but I learned a lot while making it!
It worked pretty damn well too!! see here