Linus Torvalds [off-list ref] writes:
For some random reason (probably just because nobody noticed), the one-way
merge strategy didn't mark deleted files as deleted, so if you used
git-read-tree -m -u <newtree>
it would update the files that got changed in the index, but it would not
delete the files that got deleted.
Good catch. I think it is a leftover from the days we did not
have -u there; returning 0 was a way to say "there is no cache
entry resulting from this round of path-merge".