Actually some guy from AdLib, a company that went bankrupt in 1992(!), some of you might still remember them, already said that many years ago: “If Moore’s law will hold true for the next couple of years, it is only a question of time till a soundcard becomes just a piece of software and the only hardware involved will be a DAC (Digital to Analog Converter) on your motherboard”. And he was right, I 'd say.
Today, a CPU can do in software what was only possible with dedicated signal processors a couple of years ago and it won’t even go beyond 10% load of a single core when doing so. The strange thing is, that people refuse to learn of the past: When I say today, that one day, a graphics adapter will be nothing more than a piece of software (meaning dedicated GPUs will die), I’m being laughed at; people actually get really upset and try to explain me why this cannot ever be the case and that I’m an idiot.
But let’s face it: Everything a dedicated GPU can do can also be done by a CPU. And dedicated GPUs get closer and closer to generic usage processors. Not too many years ago, pretty much everything was hardcoded in a GPU and it only supported the operations really necessary to bring some 3D scene to the screen. Today, pretty much nothing is hardcoded anymore, developers write vertex- and fragment-shaders (alias pixel-shaders), as well as whole fragment-programs. Actually using OpenCL, you can perform any kind of computation on GPUs just like you can on a CPU. On the latest CPUs, an OpenGL software emulation of OpenGL 1.0 can run faster than a real OpenGL 1.0 implementation was running on a GPU at the time OpenGL 1.0 was released!
GPUs are still significantly faster than CPUs today, since they are very limited (they support far less operations than a CPU, but those operations are optimized to the max) and they are optimized for parallelization (your CPU might have 4 cores, but your GPU might have 32 shader pipelines, meaning it can perform 32 calculations in parallel). However, they also run at lower clock speeds in general and with the increasing shader capabilities, the GPUs need to support more and more operations that cannot be optimized beyond a certain point (e.g. conditional jumps!) and may also hinder further parallelism.
CPUs catch up because they run at higher clock rates, their number of cores keeps growing (8 cores are available today, in a couple of years, 16 core might be normal for a consumer CPU) and they keep getting better instructions with each new CPU generation (SSE4.2 will soon be replaced by SSE5, further AVX is almost ready and will give CPU x86 a huge speed up). Sure, if the GPU development continues equally fast as the CPU development, CPUs won’t ever overtake GPUs… however, a company like AMD (who bought ATI and thus is the biggest competitor to NVidia) might say one day: Given the enormous speed of our CPUs, we stop GPU development altogether. And for many occasional players, a CPU that could render current DirectX10 games with all effects enabled completely in software and will achieve frame rates of 30+ FPS is all they need. And if you compare CPU to GPU speed comparisons, you’ll notice, that actually CPUs are catching up, because they are currently evolving somewhat faster than GPUs are (whenever GPUs have doubled their speed, CPUs have almost trippled their speed at the same time).
So like soundcards are only for sound/music-enthusiasts today, 3D graphics adapter will only be for hardcore gamers one day, for the rest, a software emulation on the CPU will cut it just as it does for soundcards today.