Ответ 1
Анонимные типы неизменяемы по дизайну.
Анонимные типы предназначены для хранения значений, а тип, который представляет значение, не должен изменяться.
Кроме того, это сделает их ненадежными в словаре, поскольку хэш-код может измениться после создания.
Многие методы LINQ используют словари, и, особенно с задержкой оценки, LINQ с изменяемыми типами может привести к тонким загадочным ошибкам.