An important goal in Swift is clarity at the point of use, this appears in the API Design Guidelines as a fundamental, but also pervades the design of the Swift language itself.
I think that removing the
where clause from Swift's
for loops reduces clarity.
It may be that there are other ways to express the same code result, but "only one way to do it" has never been a Swift goal that I'm aware of, and an identical result does not necessarily equate to an identical intent.
Consider the following, which was actually a source of brief confusion for me while reading some of your code.