I think you'd find it difficult to legislate any sort of "no firesale" rule, for the reasons that were mentioned, though the rolling salary cap idea is interesting. My keeper league has similar concerns, and has done a few things to try to combat them. In my league, it really isn't practical to say, "Crawford for Milledge is ridiculous" without having more information. We get to protect 20 "years of service". If Crawford currently costs 10, then he is effectively unprotectable; he is purely a season rental for whoever gets him, and there will be a very limited audience who has any interest in him at that price. That understandably drives his price down substantially. The two things we have in place, however, are:
- An in-season salary cap. This is a looser form of the proposed rolling salary cap. You can protect 20 years of service prior to the draft. At no point in the season can you have more than 35 years of service (I think that is the number... my team is hideous this year so I haven't exactly had to worry about it
This puts a bit of a governor on the teams that are playing for the present; they can't just go trade for every high-priced player in the league, and have to be a bit more discerning when taking on expensive players.
- Peer pressure. In a league with good owners, problems like these sort themselves out somewhat over time, because if you give up too easily/too early/whatever, a bunch of other owners say, "Pssst. You just got screwed. I would have given you more for him." Or they see another team that was supposedly in the same boat that recovers and does well. Or whatever. As a commish, I tend to point things like this out to my managers, particularly new managers, to try to keep the league healthy. And if I see a manager that consistently does more harm than good, then I'll find a way to replace them after a season.