I think Array should support infinite ranges created by Float::INFINITY as well
since 0..nil and 0..Float::INFINITY are both supposed to create 'infinite' ranges
and having different behavior for each of them is inconsistent.

History

I can not say much about the reasoning (I am neutral there) but
I agree in one regards - if we use a large number, we get all
Array members:

a = [1,2,3,4] # => [1, 2, 3, 4]
a[0..111111111] # => [1, 2, 3, 4]

So from this point of view, in this context, infinity could also
mean a very large number, in which case the operation should
or could be treated like any other high number.

But I think matz has to have a look at this since it correlates
with the topic of infinity (and to some extent "ranges"; not so
much in this example alone necessarily, but I think infinity has
to do with ranges as well).