Re terminology, no, I don't think so. The same argument, lets-be-similar-to-python holds, I think.
Our "error handling" approach is a simple means to elide messy StatusOr<T> conditional checks everywhere, on the understanding that the compiler will put them back in (or at least something semantically equivalent). We're not really "throwing" anything: "throw" is used to denote non-local flow, perhaps bounding multiple stack frames in one go (like setjmp/longjmp perhaps) but that's not what we're doing. I would imagine that "throw" is more akin to what we want to do in a panic.
I don't know why numeric overflow/underflow/divide-by-zero should be treated as exceptions rather than errors. The fix is usually to surround the call site with conditions that would avoid the problem in the first place. We might write code like:
if denominator == 0 { raise <oops>; } else { x = numerator / denominator };
or some such. Why not just avoid this messiness, and assume that we'll raise an error and let the programmer handle the error at the right place? I imagine that you could make the same argument for null pointer errors. None of these seem to me to be panic situations, like OOM, or assertion failures.