Here's a mystery/challenge related to this problem: these lines demonstrate how a conditionally-conforming collection implementation may exhibit the wrong behavior (not just efficiency): it actually traps. Why doesn't the same problem occur when x1 is one of the standard library's conditionally conforming types, like FlattenSequence?
// Try this definition instead.
let x1 = repeatElement(0...9, count: 10).joined()
Endless bragging rights for the dev who explains that (I don't know the answer).