A friend of mine just did a piston swap. He had two summers of hard MX on it and two winters on the snowbike. Everything looked perfect, rings getting sloppy was all. I would think every other year would be sufficient. Then again, for $150 bucks, I would just make a quick swap each fall, after the summer riding.
So on dirt I do about 130 hours a year... 2800 miles or so... then do the top end on my 300 so I could just keep that schedule?