When comparing two Geometries of the same type (eg MapPoint) with the base class Geometry, the Equals method returns incorrect value.Example:
MapPoint p = new MapPoint(12345,67890);
Geometry p1 = Geometry.Clone(p);
p.Equals(p1); //Returns false
(p as MapPoint).Equals(p1 as MapPoint); //Returns true
Both of these should return true. After all "objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program" - Liskov substitution principle.