I guess the obvious question is should it be that way? Considering the very high standards for getting into the academies, and the generally high standards for getting ROTC scholarships, it seems to me that armed service are starting with a sufficient raw talent to retain the best and brightest and seem them promoted to generals and admirals. A system that promotes you based primarily on length of services isn't a good one to get the superstars in the military.
Funny thing about those service academy standards-- they're driven by the size of the crowd trying to get in, and none of the criteria are very good at measuring persistence (or obstinacy). The best indicator whether a plebe will make it through the four years is whether or not that plebe attended the one-week "try it" session after their junior year of high school. Of course, seeing how you're going to be treated during plebe year and then deciding to show up for it anyway is certainly a great indicator of "persistence", not so much of brainpower or common sense.
USNA measures "leadership potential" by Boy Scouting's Eagle Scout and varsity sports team captain (I had neither), but it's expected that the leadership skills can be taught as well as inherited. Provided, of course, that the service academy itself has good leaders.
Congressional nominating committees for service academies are largely populated by... service academy graduates. My spouse and I were shocked at how many shipmates we met on the nominating committees of Hawaii's congressmen. My daughter (at the time considering a service academy) was disgusted.
As for retention, most officers get out of the Navy because they were always intending to get out after their commitment. Some aren't certain whether to stay or go but decide to get out because the "bad" is far worse than the "good" is good-- many of these join the Reserves or National Guard. A few get out because they never really understood how bad "bad" can be. A very few are asked to leave.
The retention decision has been extensively studied by the military, sociologists, and contractors like RAND. The only factor reliably correlated with retention has been money. (I resemble that remark.) There's a smaller correlation with the economy-- in a crappy economy, retention tends to not drop.
The advancement & promotion statistics above E-6 and above O-4 are pretty tough. I haven't studied the numbers lately but I'll guesstimate that O-4 to O-5 is about 70%, O-5 to O-6 about 40%, and O-6 to O-7 about 10%. If you start with 100 bright O-4s, all capable of doing their job and their boss' job, then only two or three of them will pin on stars. And if you think that's harsh, in most of the Navy's enlisted specialties it's far easier to make O-5 than it is to make E-8. But SECDEF Gates is proposing to cut a hundred or so flag billets, so maybe someday the admirals will be almost as good as the senior chiefs. Nah, maybe not so much.
To the military's credit they do seem to a do a decent job in weeding out the incompetents, and the up and out policy does ensure that simply serving your time doesn't mean you'll end up a General.
On the other hand compared to most civil service jobs and especially things like teaching the services seem to be light years ahead of encouraging meritocracy.
When the military historians write about the 1990s, I think they'll write about the power of computer processing to crunch all the data that's been there for decades. In the Navy's case, the fitness reporting system (FITREPs) were changed from a letter scale to a 1.0-5.0 scale for the equivalent of a GPA. Even more significantly, the grades that your COs assigned on their subordinates' FITREPs were also recorded. This gave the BUPERS computers, for the first time, the ability to distinguish between the "hard" graders and the "easy" graders. FITREP inflation still exists, but now the computer system can immediately see whether your personal FITREP GPA is above or below all the other GPAs handed out by your CO. When the system was first introduced in 1997 it led to great wailing and moaning and gnashing of teeth because nobody could get away with nothin' any longer, and some of our seniors had spent decades developing their little FITREP-ranking tricks.
Back in the early 1990s when a CO was relieved, the assignment officer was literally sorting through index-card files to identify the relief. By the end of the millennium, when the BUPERS computer was asked to spit out a list of all the O-6s who are screened for carrier command, it did so by GPA and command history. Today it can even show who was doing the grading, because some graders have better reputations than others. ("Whoa, if Schmuckatelli thinks this guy is good enough then that's good enough for me. But I don't think Schmeckelski over here could train any of his officers to fight their way out of a wet paper bag.") Again, for every guy like Honors who comes to (or who is brought to) the attention of the media, there are about 20 other officers who would love to take his place... and who are probably "good enough" to do so.