I would think that it's because of the possibility for misuse described in the MSDN docs you referenced:
Use caution when you are using this
overload of the
SqlParameterCollection.Add method to
specify integer parameter values.
Because this overload takes a value of
type Object, you must convert the
integral value to an Object type when
the value is zero, as the following C#
example demonstrates.
parameters.Add("@pname", Convert.ToInt32(0));
If you do not perform this conversion,
the compiler assumes that you are
trying to call the
SqlParameterCollection.Add (string,
SqlDbType) overload.
In fact the docs you referenced for the new API say as much:
The overload of Add that takes a
string and an object was deprecated
because of possible ambiguity with the
SqlParameterCollection.Add overload
that takes a String and a SqlDbType
enumeration value where passing an
integer with the string could be
interpreted as being either the
parameter value or the corresponding
SqlDbType value.