I made a comment on a specific commit rather than the full PR but it goes something like this: shouldn't this still be two branches of logic.  There is failure that is a real failure (raising an error) and then there is failure that is numerically indistinguishable from a point source (Point like return) and those seem like they should be separate cases.