Mekkah's suggestion is interesting, but I'm sort of conflicted about it.
I'm still relatively new to playing Pokemon competitively; I only started paying attention at the end of R/S/E. I've been around for all of D/P though and what I've had to come to terms with after my initial excitement about the game and what I thought it would do for competition is the fact that Nintendo doesn't want us to compete this way in Pokemon. They really don't. The game is not designed for us. This is in stark contrast to other games that are played competitively, like Street Fighter, where the designers go so far out of their way to optimize things for competition that they constantly rerelease the games with updates and fixes.
Nintendo hides IVs and EVs from us. Even after we go through the obnoxious process of finding them, we have to go through the even more obnoxious process of breeding for them. I gave up a long time ago on this because it just wasn't worth it for a game that wasn't designed to be played competitively in the first place. I still play on Shoddy, but I've become rather disillusioned with the game.
The way that Pokemon is meant to be played is obviously this: you're supposed to pick the Pokemon you like, level them up, and just kind of see how they do against others. In fact I expect that EVs and IVs were introduced solely to enhance the game in this aspect, and to make it so that two of the same Pokemon at level 100 would be more different.
The really interesting thing is that in a strange way I almost like this. The feel of Pokemon is very much in tune with this method of approaching the game. You know, the whole catch your Pokemon and love them and train them to the best they can be type thing, as opposed to inbreeding endless chains of them and throwing away all the ones that aren't the best.
In the end, I don't think every Pokemon needs to be viable. I don't think restarting the game is really necessary; keeping all the existing Pokemon and adding more means that the game feels more "real" every generation, meaning the world becomes more and more densely populated with Pokemon and the sense of adventure increases when playing the game. (There's huge potential for a Pokemon MMO, incidentally, but don't even get me started...) I am really quite fine with having only a small percentage of them be OU viable. It makes sense, and honestly it would be too much work to play in a metagame where 500+ Pokemon could be used. I would like to see the biggest issues removed, and I do think that is entirely possible.