That's the GP's point though: it already is impure! If you rewrite as
let acc = {...}
footballPlayers.reduce(...,acc)
It should become clear: acc is an external variable that got mutated by the reduce.