Let me qualify my answer a little bit with this: I do not know if there are any theoretical constructs with Scrum that dictates team make-up so I am answering in a more general way around teams.
I like a lot the bullets that @Barnaby Golden (+1) provided in his answer; however, they are hard to identify during selection process and those things sort of evolve over time with some trial and error selected members. Definitely teaming objectives, but I think you achieve them through evolution and adaptation of your team over time.
A lot of these decisions are made long before you attempt to select individuals on the team because it goes to the size and cost of the team for your project. So you need to make decisions about the make-up early.
With practice and experience, you would expect capability to climb and I think it does to some degree. However, performance is not perfectly elastic and, after 10 or more years of experience, a large population of those practitioners remain mediocre in capability (Boyle, Aguinis, 2011, 2012). In contract, the marginal costs of practitioners generally climb in a more perfectly elastic way with time in seat. Therefore, stacking your team with more senior folks will cost you more but not necessarily, or likely, produce higher performance / output.
My approach, because of the Pareto distributed performance curve (I find this more credible than normal distribution of capability, YMMV), is to assume sub-average to average performance / output by the team and build a distribution that is triangularly shaped based on seniority / capability. I also do not consider a simple count of years as "seniority" so there's nuance to that. While hard to prove, I believe that structure minimizes my cost for that team and likely does not impact either favorably or unfavorably performance.