Promotions were not a given in that era. You didn't get promoted, because you had been at your rank for so-n-so long and did your schooling and training, so they gave you a promotion. People were promoted to fulfill the requirements of a position. Often they were simply brevetted; that is, they got to wear the rank, and actually got the pay of a higher rank than they actually held. Brigades were supposed to be lead by Brigadier Generals--which is where the name comes from--but very often they were actually lead by Colonels. Divisions by Maj.Gen.s, Corps by Lt.Gen.
Longstreet and Jackson, under Lee's organization both lead Corps under Lee. Actually, each first lead a 'wing' of Lee's army, because in '62, Lee was not authorized by congress to organize his army into Corps. As always, and on both sided of the war (and still today) all such organizational changes to the structure of the army, had to be approved by Congress. Lee got approval to promote both to Maj.Gen. after the Peninsula Campaign, and then reorganized the army into 'corps', but called them left and right 'wings',until congressional approval was granted, but he was allowed to make informal command assignments. When the Confederate Congress approved the Corps. command structure, the names were simply changed, and they became official, although both Jackson and Longstreet were still Maj.Gen.'s, so they were brevetted until they were officially promoted to Lt.Gen. in early '63. This was a very common practice during the war.
At the General ranks, promotions were very political. Often relations between generals and politicians played a huge role, and often other generals were dragged along by higher ranking Generals. Everybody did it. Lee threw out Holmes and some other division commanders--he actually promoted them out of his theater to some backwater parts of the war, and dragged Longstreet and Jackson along on his coat-tails. McClellan did it. Hooker did it. Grant did it.
The game uses seniority and a leader's political influence trait to represent the political costs to the president were he to press an out-of-seniority promotion through.
Maybe a couple of things might be changed though. Maybe if a leader became promotable, but his seniority would cause a political ruckus (NM and VP looses), instead the player could choose to advance his seniority by a huge amount. Currently if you don't promote a leader, after the timer runs out, he goes up 2 or 4 points in seniority, but maybe it ought to be more.