They upgraded the server of course, to as much as they could afford. But it wasn't enough, the rendering load soon caught up. First of all because their number of visitors grew, but also because they wanted to add new features to their JSF pages and every new feature required extra rendering power as well.
That was considered but it would of course take some refactoring on the back end, and it would still cost quite much in hardware.
The thing with JSP and JSF is, they do ok as long as your content is relatively static, because then rendered content can be cached.
In case of this company, their most visited page was the list with search results which by its very nature was not very static at all.
Every problem is different, so I hate to judge, but what you're saying doesn't add up to any experience I've had.
It sounds like your company seriously screwed up the design if you can't scale your web tier code horizontally. I've also never had a view technology take up a significant chunk of cpu resources - it's always the Java code carrying out the functionality. E.g. I would expect the largest factor in CPU usage in the list of search results to be... generating the data for the search result. If the largest factor was rendering the result, then something was probably seriously wrong.