I understand, but the original implementation was done to work around weird semantics, which also is explained in the specs:

https://github.com/rubinius/rubinius/blob/master/spec/ruby/core/string/comparison_spec.rb#L80-L81

This means that if this behavior was fixed in 2.0, it is worth reviewing this and changing it to create a better implementation of this. This is also why I referenced to the Array implementation of <=> for comparison.