I did an experiment with FFMPEG, producing an Xvid/mp3 from a VOB/AC3 as follows:

case 1: The usual VOB to AVI conversion with FFMPEG; without splitting anything.

case 2:
  1. Split the audio and video streams into seperate files using DGIndex.
  2. Compress each file independantly using FFMPEG.
  3. Join both files using AVIMux

Case 1 produced a target file that was in sync. Case 2 produced an out of sync file; despite the fact that DGIndex suggested a delay of 0ms.

I've found that splitting the A/V streams and rejoining them works fine as long as I maintain the original audio file in AC3 format.