It's completely reasonable to generate SIMD code based on idiomatic uses of arrays, without requiring the programmer to use a special purpose vector notation. It's also reasonable to do this in a JIT.
I see this as being similar to why we're only now taking abstractions and compilers geared towards parallelism seriously for mainstream programming: not enough people needed it to justify the effort required.
But in python, the vector operations are normally programmed using simple array semantics. For example in NumPy:
>>> a = array( [2,3,4] )
>>> b = array( [2,3,4] )
>>> a+b
[4,6,8]
These can be easily converted into SIMD operations.It's matter of time before PyPy's new NumPy implementation take traction and make simply beautiful optimizing JITs using that.