The benefit of using Python to start out with is that you can get data on actual usage patterns
before committing to an overall system architecture. If you just rewrite individual hot segments of the code without considering the overall system, you're missing a lot of the point.
To pick on Twitter since their evolution of the product is fairly public - when they started, the product concept was "Oh, let's post a status through an SMS and it'll be visible on a webpage." A database-backed Rails architecture is perfectly reasonable for this. Except that then they were like "...and you can follow people", and then people started using it as a broadcast medium, and they wanted to search for trending topics, and then they opened it up to developers who all wanted an API, and then they closed it to developers, and now it's a big brand-advertising platform designed to engage directly with your customers.
They ended up switching to the JVM, and got a huge amount of flack in the meantime around "Why the hell would you build a messaging architecture in Ruby on Rails?" But the point is that they didn't set out to build a messaging architecture; they set out to build a site where you could post your status update on a website. If they had built a site to do that in J2EE, they would've been equally fucked, probably even moreso. The reason they can build an efficient system now is because they have a lot of data about exactly how it's going to be used, which operations need to be fast, which operations will be performed frequently, and how much data total will be flowing through the system.