This answer is 16 years too late for the original question, but in case anyone has the same problem, then Kinetic Merge exists for this situation: https://github.com/sageserpent-open/kineticMerge.
The idea is to merge changes made on one branch (the QA/bug fix/release candidate branch) through code motion made on the other branch (the mainline where refactorings have moved things around).
Full disclosure: I’m the author of that software.