On the behaviour of Enumerable#reduce(&.+)

That’s expected behaviour. The &.test syntax just exands to calling test on the first argument of the block. So reduce(&.test) is equivalent to reduce { |acc| acc.test }. The second argument is never used by this block.

There is currently no way to use the short block argument syntax with more than one argument. There has been discussions about adding a short syntax for referencing positional block arguments, as introduced in Ruby 2.7 (RFC: `&.` within a block - #12 by vlazar).
That feature would allow using short argument syntax in the way you describe:

[1,2].reduce(&.+(_2))