> Shouldn't this use std.range.dummyRanges in the first place?

Those are good for covering different "range" types, but is a bit bad at covering "Element" types. In this particular case, It's really all about the element types.