I think my answer to http://mathematica.stackexchange.com/questions/3261/block-attributes-of-equal is also the answer here.

----

See [Plus](http://reference.wolfram.com/mathematica/ref/Plus.html) in the reference manual:

> Unlike other functions, Plus applies built-in rules before
> user-defined ones. As a result, it is not possible to make definitions
> such as `2+2=5`.

The ability for user-defined rules to supersede built-in ones was lost in [Version 3](http://reference.wolfram.com/mathematica/tutorial/IncompatibleChanges.html#21514140).

----

There is a similar property for [`Times`](http://reference.wolfram.com/language/ref/Times.html).

Here is some evidence that rules for `Plus` are applied internally even when `Plus` is blocked:

    Block[{Plus}, 1 + 2*2 /. Plus -> List]
    (*  5  *)
    
    p[x__] := Plus[x];
    Block[{p}, p[1, 2*2] /. p -> List]
    (*  {1, 4}  *)