Because this is coming from you Aiden, and you've provided the links which I shall read soon, I won't consider HT a plus in my search for a new workstation.
The cache issue is that pairs of virtual cores share the L1/L2 caches of one physical core. This means that when two virtual cores on the same physical core are running, the effective size of the L1/L2 cache is more or less halved. This effect will typically be minor, since the L3 cache is shared among all virtual cores the actual memory traffic increase may not be significant. Some L1 hits turn into L1 misses, some L2 hits turn into L2 misses, some L3 hits turn into L3 misses.
The scheduling issue is much more significant. Since a pair of virtual cores shares a physical core, if threads are active on both virtual cores neither thread gets the full speed of the physical core. A best-case figure of around 20% improvement for HyperThreading is often used, so let's work on the basis that two virtual threads on a physical core will each run at 60% of the speed of a single virtual thread on the physical core.
If you always have 8 (for a quad HT socket) or more threads computable, then HT is a win. You'll average 120% of the speed of the none-HT system.
If, however, your job averages 3 or 4 threads computable - sometimes you'll have 1 thread running, sometimes 3, sometimes 5, sometimes 8. This may bounce up and down quite randomly during your job - and changes microsecond by microsecond as the job runs.
The situation where HT will slow you down is when at microsecond 0 you have 8 threads active - and the scheduler assigns the 8 active threads to the 8 virtual processors.
The problem is that at microsecond 10 you may only have 4 threads active - and by chance it's possible that those 4 are running on the 4 virtual processors on 2 physical CPUs.
At that instant, you'll be getting 240% of the performance of your chip, not 400%. Without HT, you'd be getting 400%.
That's why my rule is that I don't enable hyperthreading unless my workflow spends most of its time with 5 or more active threads.
__________________
Note also that HyperThreading increases throughput at the cost of added latency.
In the ideal case of a constant 8 computable threads, you'll get 120% of the throughput (things per second). Your response time (latency), however, will be 120% of the non-HT case. "Seconds per thing" goes up, even though "things per second" also goes up.