Well if that is the case then a modern GPU *is* a CPU, the only difference being the way it is connected to the memory. But I still don't think that is quite the case. How I understand it, a GPU is given a "kernel" which is a small program that is run for every piece of data that comes in on the stream. They don't run a "full program" like a CPU does, but continually apply the same function over and over on the incoming data. Which is very useful. But its "Turing completeness" is limited to the bounds of the kernel, that is you can branch and loop as much as you like within a kernel, but you can't arbitrarily call one kernel from another. Also the data goes in one end and out the other, very useful if you can split your dataset up into loads of small independent chunks. If you're doing rasterisation this is very easy because every triangle can be done independently. Maybe there's some cunning trick to it but I don't know how ray tracing would work in that scheme, because you want to do blocks of pixels in parallel rather than triangles or objects so every pipeline needs access to the complete scene structure.
But theory aside, I've been putting "real time ray tracing" into Youtube and I get a lot of stuff on CPUs and GPUs, and a lot of it is very impressive, but I don't see that GPUs actually have any obvious advantage over CPUs so far.