Acho que um exemplo com string (que você comentou no final) até que seria válido. A ideia de só usar para operações numéricas ainda ficou um pouco no ar. De resto, perfeito. O exemplo final já deu uma outra ideia do método, que, realmente, é pouco usado.
Eae Enzo. Obrigado pelo feedback. Depois de postar, eu fiquei com essa sensação também, pois no post eu digo que reduce é muito mais que operações numéricas, mas o exemplo foi usando isso. Pensei em editar, mas este exemplo, mesmo sendo com números, acredito que da uma nova visão do reduce.
Dando um exemplo com string, imagina uma escola de educação a distância, onde eu quero separar os alunos que já renovaram a matrícula dos que não, para mandar um email de acordo com essa informação. Nos dados do usuário, poderia ter uma propriedade renovou, que é um boolean (verdadeiro ou falso), e com base nisso, de um array que contém todos os alunos, eu separo em outros dois arrays: Um dos que renovaram, e outro dos que não, e mando um e-mail diferente de acordo com isso.