I think that the description of how 'pickaxe' feature works in Documentation/git-blame.txt is wrong. It says:
Apart from supporting file annotation, git also supports searching the development history for when a code snippet occurred in a change. This makes it possible to track when a code snippet was added to a file, moved or copied between files, and eventually deleted or replaced. _It works by searching for a text string in the diff_. A small example:
The part "It works by searching for a text string in the diff" is, if I remember correctly, wrong. Actually it (I think) compares how many matches are in pre-image and in post-image, and shows these commits where those number differ.
This for example means that pickaxe would not pick commit which moved a fragment from one place to other without change, I think.
-- Jakub Narebski Poland