With dd1 she'd had a number of big parts (3/4 of the junior Christmas shows, not the main, but a good part each time, and the majority of her year hadn't even had a part, just were choir each time) and so when it came to the year 6 play, we talked about it, and went in together and requested she didn't have a big part because she'd more than had her turn.
They gave her the main part and said if she wouldn't do it, she wouldn't be in the play. She was good, she was reliable, but I'm sure there were several others who would have done as well. I didn't really get their reasoning.
I proposed to the school (juniors) that they should make sure that each Christmas play had enough parts for 1/4 of the year (150 children total, so around 40 parts) to have some sort of part with at least one line. Then there should be a list and each child ticked off as they have a part, so every child should have had a part for one show. Then the year 6 play done by audition. I thought that was fair.
They didn't take my suggestion.
I thought it was both sensible and practical. It wouldn't have taken too much to have a list they ticked off every year. And it would have encouraged them to change from having one shepherd with 20 lines to having 10 with 2, for example which, when you have 150 kids for parts, is far better.
I think every child should be able to go home and say "my part is XXX". What they had was normally about 10 children with big parts and 15 with little, and 120 who were "choir" wearing, on a good year, a Christmas hat with school uniform.