I would have preferred this signature to start with, but it's easy to wrap.
Indeed, but a default value for the first argument requires a default value for all arguments. It's a syntax error, but I agree a "range-like" signature like that would be better.

My reference scan implementation (that's how I thought itertools.accumulate should be):

A new "functools.scan" with a signature like the one from the link above would be nice, but it would overlap with itertools.accumulate in some sense. The advantages would be:

1 - The scan signature and the functools.reduce signature are the same (the function as the first parameter, like map/filter)
2 - The module, functools, is the same that has the reduce function

Danilo J. S. Bellini
"It is not our business to set up prohibitions, but to arrive at conventions." (R. Carnap)