I agree with you that competition is important. I disagree that the improvements in generations of i7s are as minor as they superficially seem to be.
For at least my task, compiling large amounts of C++, the difference between the different i7s is huge. I get a new expensive laptop every two years (and a cheaper machine for portability or other purposes each off year). I have a high end 1st, 2nd, 4th and 6th gen i7 each machine is measurably faster with the oldest machine taking almost 10 minutes and the newest taking just about 2 minutes to build the same codebase.
You are comparing various mobile CPUs for each generation which isn't quite the same thing most people are likely talking about. Desktop and Mobile CPUs aren't the same thing (usually).
I suspect you are comparing the improvements along the lines Intel says it can still improve (lower power chips) but its simply because you keep buying laptops vs. desktops. If you had been buying desktops, I suspect you wouldn't notice the improvement.
My desktop I built 4 years ago compiles within ~20% as my desktop at work with its shiny new Xeon.
Every machine has a raid 1 of "high performance" SSDs. Most have Corsair force3 GTs. The 4th gen is an untrabook with room for only one SATA3 ssd, so I put a Mushkin M3 drive in in for the raid. The Newest machine some other SSD that is just slightly faster. The read speeds are something like this 1st gen -> 1.2GB/s, 2nd gen -> 1.2GB/s, 4th gen -> 1.1GB/s (the M3 drive slows it slightly), 6th gen -> 1.3GB/s.
Each machine is faster than the previous by a wide margin, far more than the proportional speed difference from the slowest to the fastest. There is almost a whole minute between (3m to 2m) from the 4th to 6th.
The first gen has 2 cores with hyperthreading (looks like 4 in gnome system monitor), the quad cores with hyperthreading where far out of my price range. All the rest, the 2nd, 4th and 6th gen have 4 cores and hyperthreading (looks like 8 in gnome system monitor).
For reference each of these was around $1,600 plus or minus $200, except the 6th gen. The 6th also has an nVidia 980 (not the normal mobile version) and 4 total hard drives. The other two drives are large mechanical disks that I only mount when I am doing stuff with movies or other large offline data, I do not believe they have any impact on the benchmark. This machine cost $3,200 after all the crap I did to it.
Do SSDs make any noticeable difference? I think I once read a post (maybe from Joel) where they bought SSDs and the difference in compilation time was negligible.
I think it might even depend on the build complexity. It is possible to write code that requires insane amount of CPU time with the write (wrong?!) kind of C++ template metaprogramming.
For at least my task, compiling large amounts of C++, the difference between the different i7s is huge. I get a new expensive laptop every two years (and a cheaper machine for portability or other purposes each off year). I have a high end 1st, 2nd, 4th and 6th gen i7 each machine is measurably faster with the oldest machine taking almost 10 minutes and the newest taking just about 2 minutes to build the same codebase.