What browsers need to do is to have a machine-level bytecode, so that they can download whatever interpreters are needed to run the scripting code the page uses. Then pages can be written in whatever language the developer feels is best.
This is the real potential of something like Native Client - although it doesn't look like that potential will be achieved any time soon.
http://www.chromium.org/nativeclient/pnacl/building-and-test...
There is no indication that browsers are going to standardize on a VM (let alone NaCl) any time soon.
If someone just stopped bikeshedding and did Python in the browser, there's no reason a machine-level bytecode or whatever couldn't be implemented later.
But those are libraries under your control at least. The "problem" with Python is that the language itself is big. Normally this is a non-issue, since you can upgrade your interpreter version when your code stack supports it but on the web you don't get that luxury because you are forced to use whatever interpreter the users have.