Просто синтаксическое дерево задано таким образом, что разрешен только первый способ.
Со вторым было бы, наверное, удобно задать конкретный тип. Но грамматику языка нужно расширить для этого, чтобы выполнялся контроль типа и приведение, если оно необходимо и возможно.
С другой стороны - если нужно указать тип, то можно сделать приведение самостоятельно:
var q = new {name = (object)"Cool Name", year = (decimal)2017};