I'm not sure that iteration really fits the concept Result is attempting to model, but this is mostly a feeling. If you only care about using your results as options though, they can be converted extremely tersely: result_a.ok().zip(result_b.ok()) works now.
It seems like an odd pattern for fallible operations that in the case both results are Err, then only the first error is returned.
If you want only the first operation's error, then and_then may clarify the intention more.