The following thoughts are based on
my try at understanding combat. I don't know if they're correct.
The optimal composition of brigades depends on weather and terrain, of course

.
Skirmishers
Skirmishers are always nice as they bestow a +1 initiative bonus to the whole brigade and they don't need a lot of frontage. This means that your elements are more likely to fire first, thereby possibly routing an enemy element so that it cannot shoot back at all, or with reduced chance (due to cohesion loss and loss of hits).
Cavalry
Remember that cavalry can only carry out "cavalry charges" in open (or clear?) terrain - at least I've read that somewhere, it's not in the manual

.
In battle, I usually rely on heavy cavalry. According to its attributes (assault, assault-damage, protection), heavy cav. is superior to light cavalry. The only disadvantage is in bad weather or difficult terrain, when heavy cavalry consumes more frontage than light cavalry. Light cavalry, on the other hand, is much better at scouting (evasion value, hide and detection). However, for this purpose, light cav. doesn't need to be part of my "combat stack". I don't know if light cavalry plays an important role when it comes to withdrawal (chance of success, hits) though.
I'm not sure
1. whether to combine cavalry with infantry or not, or
2. whether to form cavalry-brigades or to use cavalry as seperate units.
ad 1. The problem here is that I don't have any detailed information on how close-combat works. I would love to know more about close combat!
Let's imagine a mixed inf.-cav. brigade. When most of your inf.-elements get to fire before the enemy, then your cavalry won't suffer too many hits because the enemy elements will probably shoot back at your infantry-elements (which are going to suffer more hits though). Once the distance reaches "0", heavy cavalry is both very likely to attack and very likely to "hit", thereby inflicting a lot of damage (usually 3 hits). The amount of damage that is inflicted on the cav. in return heavily depends on the close-combat quality of the attacked element. E.g. grenadiers are likely to strike back and hit, whereas militia-men are a complete flop.
To draw a line: I still don't know whether to mix inf. and cav. in a brigade. Therefore we need to evaluate the weight/importance of close-combat in comparison with ranged-combat. Under which circumstances is it wise to have a brigades' firepower reduced in return for more close-combat-power? Probably I would prefer to have a lot of cavalry in a brigade which has to fight against lots of grenadiers - the problem: I never know which of the enemy units my brigade is going to pick.
ad 2. Seperate (non-birgaded) combat-units (non-support-units) are less likely to be targeted by the enemy in ranged combat than bigger brigades. But if they are, they will suffer a lot due to their small size (the fire of a whole brigade may be concentrated on 3 elements of cavalry!). So it is a gamble really.
Remember that cavalry-elements have their chance of "cavaly-charges" increased when they're part of a brigade. (manual p. 49: full leaders' offensive rating instead of half leaders' offensive rating)
Artillery
I usually use artillery as seperate units in a stack. The main reasons for that: 1. artillery doesn't consume command-points, 2. the size of brigades is restricted to 1 leader + 4 units in RoP. When there are less elements in a brigade (and artillery is even less likely to be targeted!), enemy fire (units always target
one enemy unit) is more concentrated as it is spreads over less elements. So your infantry elements may suffer more hits when they're targeted by a big enemy brigade. On the other hand, artillery in a brigade fires at the healthiest element of the respective enemy unit (the enemy unit that has been targeted by the unit which the artillery is part of), whereas seperate artillery fires at the healthiest unit (or element?!) present on the field of battle.
-------------
The advantage of brigades over seperate units: Brigades may deal concentrated damage if they target a small brigade or a seperate unit (less enemy elements get damaged, but the damage will be bigger).