It is a 20-40% gain in specific scenarios that might not be important to most people. I am not so sure that the 5% die increase couldn't be used in a better way for a more general performance increase, e.g. I'd easily take a 3% increase in everything over 30% in encoding. Maybe it really can't and HT is well worth, but I've not been convinced so far, and for sure I don't see it as a game changer.
I think it's pretty obvious that AMD has consistently failed to improve their core performance since the K8, and SMT is probably the 'low hanging fruit' at this point. 20-40% gain is a lot more than AMD has managed in the past 5-6 years of development.
And there was some discussion here with people arguing that large HT gains might be due to apps not being well optimized. I can see how SMT can be used to e.g. hide memory latencies, but scheduling more CPU-bound threads than physical cores on a SMT enabled CPU will probably do more damage than good, even if you will see a gain compared to running the same number of threads with SMT off.
Not if you understand how a modern x86 works.
For example, the Core2 and later have 4 ALUs per core. However, because of the x86 instructionset and the decoding complexity, it is physically impossible to execute more than 3 instructions per cycle on average. In practice, most of the time, you should be happy with 2 instructions per cycle.
So that means 1 or 2 ALUs are pretty much always idle. And then I'm not even getting into the fact that there are a lot more units than just ALUs in the CPU (FPU/SSE/LSU etc).
It's physically impossible to feed x86 code that uses ALL your execution resources. Most of the time, more than half of them are sitting idle.
In fact, with a bit of clever application design, you can get almost perfect results from HT... for example, if you run one thread that only uses the ALU, and another that only uses SSE, they can pretty much coexist on a single physical core without any compromise.
x86 is just the most horrible instructionset ever. It's like trying to fly a space shuttle with a set of tweezers.