Argh, ... quite lately I removed the workTreeIterator. My first version had the four iterators in the walk. Also your description on the algorithm in [1] contained the WorkingTreeIterator ... but this description was always walking over three tree's leaving out the head-commit. And I was always wondering why the WorkDirCheckout which had to solve the same problem didn't make use of the WorkingTreeIterator.
I tried on my own with 4 trees and detected that in dozens of cases I don't need a working tree iterator (because I detect conflicts without looking at the workingdir). I thought: maybe iterating costly over the filesystem by default is not worth the effort and looking at files only when I need it is more performant.
When I later got some problems during implementing I asked in you in [2] but couldn't wait for your answer before doing the proposal.

Anyhow: I'll propose another patchset with the WorkDirIterator. I'll enhance the interface so that EGit can pass it's own Iterator.

[1] http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg00220.html
[2] http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg00377.html