Maybe I am in a cranky mood, but I wouldn't worry about scaling out the web tier.
You can scale JSF just fine (although I may not like JSF at all ;)
Slashdot does just fine with Perl + memcached.
Your scalability concerns are going to come in with your architecture, and caching.
If the bottleneck is in taking the HTTP info in, parsing it into objects, and the on the back-end doing the opposite, then you have done an amazing job scaling the database and the network layers.
Of course we need to test our architectures etc, but I have just seen a PHP application that handles a massive load, with an average architecture :)
It handled everything just fine because of the caching they use.
This is why TheServerSide.com running on EJB etc was/is such a hilarious thing. Tapestry isn't the bottleneck ;)
And with 64 processors each with 64-cores, CPU bound scalability probably won't be the case often too!
Use the tech that gets out of your way and feels right to you. This is why Rails is doing so well.