It’s a guarantee about when errors will not be thrown. Callers often know the implementation of the arguments they provide, and therefore the dynamic conditions under which an error may or may not be thrown. It can be very helpful to know that these are the exact same conditions under which the invoked rethrowing function may throw (even if the error it throws could be transformed). The fact that error documentation is usually abysmal makes this static guarantee even more important IMO.