Given the relationship between throwing and non-throwing functions, I'm surprised this doesn't already just work. A non-throwing function has the same calling convention as a throwing one, it simply never touches the error-out parameter.
Unless I'm seriously misremembering how that works.
The issue isn't the relationship between throwing and non-throwing function types (as you note, the proper subtype relationship exists already), but the fact that the second argument of && is an @autoclosure param, so the full type is (Bool, @autoclosure () throws -> Bool) throws -> Bool. The reduce method expects (Bool, Bool) throws -> Bool, so the types are incompatible.
I also raised another related issue with the @autoclosure solution for short-circuiting boolean operations here a while back. I'd definitely support a proposal to add non-short-circuiting versions if it doesn't result in serious type-checker issues!