A scrum team can very well be composed of more-or-less specialized members. This is the situation of almost every team and this can be a good thing IMO, as long as the team can self-organize itself to take advantage of its specialized members.
Please read these two articles for more information:
Balancing specialization
The need for balancing specialization occurs when a team takes shared responsibility of all the work in a Sprint. As a result, team members need to learn a little bit of each other's specialization. This does not mean that all team members must be generalists, but that members move away from the other extreme -- being a specialist in exactly one area. Team members will learn multiple-specializations but probably not all of them.