Requiring at least one argument

I noticed that some methods are OK with 0 or more arguments, while
others require 1 or more. For example,

ary1 = [1,2,3]
ary2 = []

ary1.unshift(*ary2) # => ArgumentError, wrong number of arguments (at
least 1)

···

files = []
File.delete(*files) # => 0 (no error)

I personally like File’s approach, but perhaps there is a reason for the
inconsistency. Can anyone explain the reason for these two types of
behavior? Any suggestions on when to require at least one argument, and
when to allow for 0 arguments?

Thanks,
-Brad