In the quake 3 source, you can find how the offset is determined in the animation.cfg parser. However, the offset is dynamic. With quake 3 models, the only frames that the upper and lower body synch up to are the BOTH_DEATH1-3 animations and should have the same amount of frames for them. After that, the lower body and upper body go on to do their own thing.
Technically should any 'lower' match with any 'upper', head, and weapon, and so-forth match?
Not with the way MD3 animations are handled. Besides, if the lower/upper body contained the same frames for the upper/lower body's specific animations, the file size would be bigger and take a bit longer to load. What you've said is only true in a single skeletal animation based model.