Correctly find functions that are multi-return candidates

The problem with the old implementation was that it checked blocks that
control returned to, so it was never able to find the original call that
led to the block being examined.