What my league does is the following:
5 keepers per team, though each team has a 5 year keeper, a 4 year keeper, a 3 year keeper, a 2 year keeper and a 1 year keeper. Essentially I tried to balance the following factors:
- keepers make the league more interesting
- it sucks if you have a bad team and the draft lacks star players
- every player should be draft eligible at some point during their prime
- having to decide how long you can keep a player adds an element of GMing that I think is pretty fun
- it is kind of a hassle from my perspective, but most of the owners are pretty happy with the balance that the league has obtained. The guy who has Mike Trout is pretty happy about it, but Trout will also be draft eligible when he is 26, which mimics the six years of control that major league teams actually have
- I'm not sure if the wrinkle is worth the aggravation!
Ultimately, it is a nice balance for guys who like young players and more casual observers. Typically the more dorky baseball types (of which I would include myself) overvalue young players, allowing older players to be undervalued, which appeals to less hardcore owners. Overall though I am pretty happy with it.