Writing a function with UB for overflows doesn't cause unintended behavior if you're doing it to signal there aren't any overflows. And it's very important because it's needed to do basically any loop rewriting.
On the other hand, writing a function that recovers from overflows in an incorrect/useless way still isn't helpful if there are overflows.