Great! After thinking about it some more, I think I understand why the graphs are flatter than I expected. There are differing degrees of difficulty in tactical mistakes. When a 1500-player blunders a pawn or piece, it's often resolved by a trivial one-move sequence. GM blunders are more subtle, often requiring a lengthy (say 5-10 ply) sequence to resolve. You could prove this by recording the minimum search depth the engine needs to recognize the blunder. (This is tricky, because search extensions result in many sub-variations being analyzed much deeper than the nominal search depth, but I seem to recall that Crafty has an option for disabling extensions.)