So what keeps prices high at the top end? The answer is branding. Business clients don't trust their sensitive legal work to firms that don't have brands. And these firms that have brands don't hire just anyone. Only about 10-15% of fresh JD's end up at a medium to large firm working on corporate law, and the majority of them come out of the top 20 (of 200+) law schools. There are only so many graduates of Stanford and Berkeley to go around, so only so many of them get hired and trained at business law firms, and only so many of those make it to partner and build up years of experience. This is the real supply bottleneck.
You've always seen this phenomenon in banking and consulting (business clients trust their M&A to Goldman, who hires from Harvard and Princeton, maybe Yale if they're really feeling pinched). Now, you're seeing it in engineering too. It used to be that large companies didn't care much about where you went to school or what your grades were. But these days, places like Google, Facebook, etc, disproportionately recruits from the Stanford/MIT set. As a result, salaries at these companies have bid up dramatically. I hear a fourth year engineer at Google can make $250k+. That's comparable to a fourth year lawyer at a top law firm. These salaries were unheard of in engineering back when places like IBM didn't care all that much about Stanford versus CSU.