What is the design decision to lean towards not returning an anonymous types from a method?
Because C# is statically typed language and in a statically typed language the return type of a method needs to be known at compile time and anonymous types have no names.