You answered your own question. Git blame is a pretty crappy tool but it's a tool that a lot of people use nevertheless. If you have a commit that converts tabs to spaces, then the blame for pretty much every single line will be lost before that point.