You are correct that not a lot of software can effectively use 40 threads. Eventually Amdahl's law kicks in and you can't do
one thing much (if any) faster with more threads. Some software doesn't try to do one thing though (especially a lot of the benchmarking software which arbitrarily create work). Think about almost anything in the distributed computing realm. They don't try to do one thing fast, they try to do many things fast. That type of software is perfect for core spamming. That is not applicable to everyone though as many people don't run those types of software.
But I have a more important point that I'd like to make. Right now as I eat lunch, my computer is almost completely idle. Yet ~18 threads are using over 0.3% of the CPU time. Context switching (switching a core from one thread to another) to share all 18 threads over a few cores is quite computationally and energetically expensive.
https://en.wikipedia.org/wiki/Context_switch#Cost Imagine if context switching wasn't really a thing any more. Imagine if every important thread has its own core. Think about all that software you are using that doesn't need a fast core, but needs to do something regularly (virus scanning, Windows crap, background encryption of everything, heck even Microsoft Teams has 3 to 4 threads each using a significant amount of CPU time all the time).
Imagine they all have their own tiny core. No more context switching would make the operating system a piece of cake and far more efficient than it is. Heck, Windows could even be made to be fast. Gasp! Imagine how much simpler and more secure virus scanning could be if the programmers didn't have to consider sharing resources. Scan everything as it is being used. Encrypt/decrypt everything without any performance impact to the user's software. AI always listening to what you are doing/saying/typing without impacting the user (if enabled), etc. All without the CPU cost and energy use of context switching. And your own programs have dedicated powerful cores without any of that background tasks impacting them (no interruptions for Windows stuff, no cache sharing, etc).