Os tipos anônimos C # são redundantes em C # 7

Como o C # 7 apresenta tuplas de valor, existe um cenário significativo em que elas são mais adequadas que as tuplas?

Por exemplo, a seguinte linha

collection.Select((x, i) => (x, i)).Where(y => arr[y.i].f(y.x)).ToArray();

faz a seguinte linha

collection.Select((x, i) => new {x, i}).Where(y => arr[y.i].f(y.x)).ToArray();

redundante.

Qual seria o caso de uso em que um é melhor usado em relação ao outro (por razões de desempenho ou otimização)?

Obviamente, se houver necessidade de mais de seis campos, as tuplas não podem ser usadas, mas há algo um pouco mais nuançado?

questionAnswers(2)

yourAnswerToTheQuestion