Just a raw idea. (from a user or GUI point of view)
When comparing code, sometimes the relevant code sections don't match up. and because of this mismatch other code also might gets pushed around so that the general compare looses most of its significants.
Playing around with the general setting might help, but that depends on the current text being compared of course.
What if you could help WinMerge a bit by telling it witch code (or lines) belong together after the initial compare.
One way that comes to mind is a option, lets call it "LinkUp" or Linkup Lines", than can be activated from the context menu when there is a selection in both compare planes. This linkup connection or point could than act as a additional text allinement point for WinMerge.
Linkups would be temporary and only be maintained during a particular document compare session, but preferably spanning a refresh.
Anyway, just a idea.
(left category open, Not sure to what part this should belong.)