I ran D-III xc from 2000-2004, and while I always liked leaving the regional meet knowing whether or not I qualified for nationals, I can understand how the old method way somewhat flawed.
Say the top five teams in your region each have seven seniors. Four of the teams qualify for nationals, and all place in the top 15. This will earn your region five teams the next year (if I remember correctly). However, all of the quality runners in your region graduate, and you're left with five teams going to nationals who have no reason to be there. This also shuts out regions who may have had significant improvement in the past year, but due to teams underperforming at nationals the previous year, do not earn the extra berths. To me it doesn't make sense that Team A doesn't get to go to nationals in 2007 because Team B stunk in 2006.
The new method is flawed as well. Unlike D-I, most D-III teams do not race out of their region, and when they do, it's usually only against neighboring regions. Sure, once in a while a team like NYU will fly out to Wisconsin, but for the most past team stay local. So the voters are not allowed to look at early season meets when teams may have had common opponents, only meets like regions and conference. This can lead to a significant amount of regional bias as some coaches (not all, mind you) may not have much knowledge about teams on the other side of the country.
There may be a better system out there, but no matter how they are selected, some deserving teams will always be at home the third weekend of November, and some poor teams will always be running nationals.