The min() builtin just forwards the arguments as a method call using the first argument as the target.  From the standpoint of the place where the error is detected, this is the correct position.  
Not from the programmer's point of view, perhaps :-).   The min() BIF could check the arguments...
 
Mike