I'm not saying that performance isn't important, it is, but what is really important is time to solution, not how fast your code runs, and that means all of the issues about usability, about infrastructure support. Because, as expensive as high end machines are, people's time is even more expensive. A sweeping generalization - I think that the applications that people care about now tend to be multidisciplinary, they tend to involve code from multiple discipline groups. You may want to do that across multiple machines concurrently, if you have a unique scientific instrument that you get your real-time data from to do analysis. Benchmarks tend not to capture all of that richness of complexity, and if any one of those components does not work well, then the complete solution will fail.
Benchmarks tend to focus on individual pieces.
So, to get good coverage, you really would have to have a benchmark suite that looks at how long those things will interact, and that's what's really hard. That's why people tend to want to use applications as benchmarks, because they tend to be richer and cover more of the space. A couple things. If you look back at the history of applications on high-end machines, there was a time when they tended to be much more regular. Applications are becoming increasingly irregular in the sense that they are dynamic, they are adaptive, not only in terms of the numerical sense, but also in having to adapt to a changing resource base.