Apart from the naming (following stuff in eg. itertools or rayon, I’d expect something like this to be try_and_then), I guess if we go this way, the number of such methods will explode a lot (someone else will want Option<Result<U, E>>, etc…).
When dealing with such things, I often find myself wishing transpose was stabilized. But it might help a lot.
I can definitely see how that function is useful and it could be a substitute but I think that it would also be much more verbose then this needs to be.