I tried to explain here:

https://github.com/rspec/rspec-expectations/blob/9e05e567eec31d3db0a970bb0fd33041aeb157bd/lib/rspec/matchers/matcher.rb#L175-L177