would it be more efficient to add an extra == in there for these
methods in core?

like

rb_eql(VALUE obj1, VALUE obj2)
{
    return RTEST(rb_funcall(obj1, id_eql, 1, obj2));
}

becomes


rb_eql(VALUE obj1, VALUE obj2)
{
    if(obj1 == obj2)
      return 1;
    return RTEST(rb_funcall(obj1, id_eql, 1, obj2));
}

Just wondering.
-r