I ran into a similar problem a few years back in my league (16 teams H2H categories). What we did was have a four starter limit per day and nine overall starters on the active roster. We also added an extra OF and U spot the lineups because teams that ended up with little starting pitching ended up with too many hitters on the bench. This forced the pitching hoarders to stop hoarding pitchers and grab two more hitters for the active roster. It helped balance the rosters and the league has been better because of it.
I'd say the majority of teams carry the max limit of starting pitchers and some even grab RP/SP eligible guys to get an advantage (but not enough to ruin the league). We use CBS so we can't limit starts or IP but the restrictions we have in place seem to work because no one wants to stream when there are only #4-5 type starters on the free agent list.
My league settings: 16 teams, mixed H2H Categories
C, 1B, 2B, SS, 3B, OF (4), DH, U, SP (4), RP (3), BN (7) DL (5) Minors (4)
OBP, SLG, R, RBI, SB, HR W, QS, K, S, ERA, WHIP