You may be right. You have certainly spent far more time than the rest of us thinking about this.
At a minimum, I think we should make the use of “finite” in the documentation more precise. For example:
a collection's indices form a finite range of the positions of the collection's elements
Given that we allow 0…<Int.max
this sentence implies a connotation in direction of the mathematical notion of "finite". At the same time we have algorithm precondition documentation that says "must be finite". This clearly carries a narrower connotation that the it must be possible in practice to process every element. Obviously your proposal to allow infinite collections eliminates the former connotation leaving us with the latter.