The implementation for the new `Sequence.first(where:)` function in Swift 3 internally uses a `throw _StopIteratop.stop` to exit a `forEach` loop on success.
While merits of this approach can be discussed, the immediate impact on developers is that Xcode breaks every time an item is found when using the Break on Swift Errors debugger breakpoint.
Since Xcode internally breaks on `swift_willThrow()` when you ask it to break on Swift Errors, the standard library should refrain from internally using `throw` for regular control flow until tooling can support filtering of false positives.
One way or the other, the current state of things should change. One solution would be that swiftc does not emit the call to `swift_willThrow()` in certain known internal cases.