A problem that I've encountered with my league is with the promotion and relegation system being turned on post-season 3. Instead of going in to "tier-fill mode" like it would in season 1, it only fills with a small amount of players.
Currently, we are in season 4 and enabled promotion and relegation this season with the view of enabling some of our newer players to have a better shot at winning and allow established players to have more challenges. We have 30 players in the league. With the current promotion and relegation system, 4 cars will promote to the Pro tier and 26 will remain in Rookie.
This is what we're currently looking at
Season 4 (current) - 30 Rookies
Season 5 - 26 Rookies, 4 Pros
Season 6 - 22 Rookies, 8 Pros
Season 7 - 18 Rookies, 12 Pros
and so on.
To build up multiple competitive tiers, it would take a number of seasons and would require 1 small group of people racing together for a number of seasons before it starts becoming rewarding. No one really wants to race in a 4 person race. Obviously this may not be a huge problem for a public game - as public people can join and leave the game at will, propping up numbers. In private games however, this can make promotion and relegation basically not usable unless you invite others that are already in existing upper tiers.
What would be a good solution is to enable the accelerated promotion from the season that it is turned on, rather than the total of seasons run. This would enable the tiers to be filled faster and solve the problems of tiny racing groups. Under this, we would have
Season 4 (current) - 30 Rookies
Season 5 - 22 Rookies, 8 Pro
Season 6 - 16 Rookies, 14 Pro
So it would take far less seasons to balance out the groups and 8 - although smaller than we'd like as a group - is acceptable for a season to race in. The other solution could be an admin function to adjust the number of promotion and relegation spots up to a maximum set by the developers that can be adjusted.