Language design, like most engineering, is all about weighing tradeoffs. There may be a language that's ideal for a particular application but there will never be a perfect language.
The difference between Jython and CPython may tell a slightly different story: with them, you have the same language but different implementations that may be more appropriate in one circumstance than another. If you really want to utilize threads to accomplish your goal, use Jython (yes, there are ways to do the same thing in CPython). If you want very fast startup, use CPython.
Maybe there could be a single, perfect language with different implementations providing the tradeoffs. The most difficult challenge may be bridging the performance/productivity gap between the C's and the Pythons of the world, but that may be a side effect of making multi-core programming easier. Amdahl's law[1] may prohibit that, though.
Static vs dynamic typing, OO vs procedural, stateful vs functional/pure etc all have intrinsic strengths and weaknesses. You can only compensate for so much in implementation. Python will always be a bad language for writing kernels, for example.