I'm not sure why it's supposed to pass, actually. -G makes the pattern be a basic regex and basic regexen don't recognize the + repetition operator.
expecting success: echo ab:aab >expected && git grep -E -F -G a\\+b >actual && test_cmp expected actual
--- expected 2011-05-25 03:19:05.000000000 +0000 +++ actual 2011-05-25 03:19:05.000000000 +0000
@@ -1 +1 @@ -ab:aab +ab:a+b not ok - 94 grep -E -F -G pattern ~~ Brian G