the main problem as I see it is that the club has become more important than the country. All the money is in club football and if you asked where ultimately players' loyalty lay it would be with their club rather than their country. Becasue so much money is in the premiership it attracts the best players from around the world leaving only 40% of premiership players being from the home nations - some teams not even fielding a single home country player in the 11 a lot of the time (e.g. Arsenal). So yes you get good league football, but it leaves a poverty of english players playing at the highest level, such that when your Rooney's, Terry's etc get injured there is no depth of talent to replace them. That's not to say they're not out there, but they're down in the championship not being given the opportunity to develop their talent.
This will only change when a national academy gets set up (Burton), where foreign players are not chosen to such a great extent, and young english talent is developed from an early age and allowed to play at the highest levels.