Subtraction accumulator
Some notes:


def subtract *numbers: While Ruby allows to omit parens, the community consensus is that it makes signatures harder to read. 
(numbers.drop 1): When you have to write parens like this, it's a signal that you should just write them in the method call. It looks like Scala or Haskell, not Ruby.
As @Nakilon pointed out, you can drop the drop/first, a fold without an initial value takes the first one.
The identity value for subtraction is 0, let's use it for empty inputs.
xs.inject(initial) { |acc, x| acc.method(x) } -> xs.inject(initial, :method)


We can now write:

def subtract(*numbers)
  numbers.inject(0, :-)
end



  For me, simply moving logic isn't a new style per se, and so conceptually this is nothing new to me.


I don't agree. The steps followed are conceptually the same, yes, but the use of a widely known generic abstraction like reduce/inject has reduced the overall complexity. Of course, one abstraction does not make much difference, but dozens of them change the way a whole program describes what it's doing. And that's what programing is about: building abstractions to reduce complexity.