While it is important to recognize expertise and defer to that expertise, you also need to determine what strengths each team member has. Like it or not, you have to ensure that each member contributes productively to the project efforts. This means you must motivate them to contribute, and in a sense, find a place for their sense of importance to be recognized.
Your challenge is to not let the superstars overshadow the other members in a way that reminds the lesser skilled people that they are not superstars. The trick is to not slow the project down by worrying about the emotional state of each team member while maintaining morale.
If you have good designers, let them lead the design, but you may want to consider including the non superstars backup for the A-team. Have them help Q/A the design, keep up documentation. You can also assign people who do have great design skills as part of testing team. The is a good position for the old school folks - let the non-OO people do black box testing, and in some cases when time permits, let them participate in white box testing.
You'll need to remind the less experienced team members that they have a great opportunity to learn from some skilled people. They may not get to do the things that they want, but they will have the opportunity to participate, and when possible, take direction from the subject matter experts. Real life projects with real stakes will give the junior members great experience.
In the end, you'll need to service the project, and you will have to nicely but firmly remind the team what is at stake, and seek to give them meaningful duties that demonstrably contribute to the success of the project. Good luck.