Oh come on... We never even referred to shaders as 'programmable cores' prior to Cuda? Why not? Because they weren't anything like CPUs.
They were programmable shaders, literally. They were simple operations for shading only, which could be 'programmed' (more like 'sequenced').
Cuda took a giant leap there, added a lot of features such as full IEEE float compliance, full random memory access, shared memory, as well as a more complete instructionset, so that GPUs were now capable of more or less the same things as CPUs, and can be programmed through C/C++.
Sure, we've had parallel architectures before, but we're talking about GPUs here. For GPUs this certainly was a first, and quite a leap. It opened up the GPU for tons of new applications.
I realize it's difficult for people who have never programmed GPUs, or at least haven't programmed them in the early days, with register combiners and the first generation of shaders, to have a good idea of how far we've come... but really, try and get a proper perspective first, this is getting ridiculous guys.