The point is that if size_t can't be negative there's no point in checking for it to be < 0.
The compiler should notice that and warn you with something like: "comparison will always be false". Please check if it does.

If a caller tries to pass a negative number to a function expecting an unsigned type the body of the funcion will see that value reinterpreted as a positive value, which usually gets evaluated as > [maxvalue].

If a check has to be made for negative values it should be made outside of the function, that is while the value is still signed, right after reading it from the stack...