“Working with similar people leads to limited perspective and heterogeneous group brings different perspectives to the table and bring truly innovative approaches to solve a task”
I guess this could be one of the key reasons of having cross functional team practice in Scrum. In most of the Non-Agile projects, the teams are formed based on architecture layers.
For ex: UI team, Database Team, Middleware team.
Each of the above is a homogeneous group and there is less innovation.
However, most of the Agile methods recommend team formation based on the story or Requirement as opposed to the architecture layers. This would encourage having team members from UI, Database, Middleware, Testing, etc. working together leading to formation of heterogeneous team. Heterogeneous teams are found to bring different perspective to the table and thus bringing creativity