Bah. Misconceptions.
A 5900x rarely ever hits 90°C, it actually rarely ever hits 80°C. Only a single core does, which is not representative of the entire cpu. It takes a full core load like blender or Prime95 to do so. Otherwise, when you open Opera, the cpu is not hitting 85°C, only 1-2 cores are hitting that temp. Very big difference between 2 cores at 85° and 10 others at 40° to the power and heat output of all 12 cores at 85°C.
Software reporting only shows the hottest core at any given time period. And that's totally dependent on exactly when the report is read. If a read is every 256ms, that's 4 reads per second. Spikes last @ 10ms ±. So if the workload produces 40 70 55 55 in that second, and the reported read is on the third read, you'd see a temp of 55. Exact same load of 40 70 55 55 reported on the second read would show a temp of 70 for that core. Reports are generally updated every 3 seconds. Any faster than that and your eyes would see nothing but the digital '88' blur as the numbers would blend together.
So core temps can be anywhere from 40ish to 90ish at any given time but you'll only see exactly what temp is read and reported every 3 seconds. To see actual core temp variation for any time period requires a line graph, which is semi-useless since cores are not static, windows will assign different tasks to different cores, at different times. So the only thing shown is the plot of whichever core happens to be hottest at every read, leading you to believe the cpu is running 85° in total when running Opera, but in reality it's the full mix of all the cores hot points only and not the actual temp of the entire cpu.
It's in this where Ryzen Master temps are better suited as they average the temps per core, every 3 second time period. So you'd not see lows or highs with 40 70 55 55, just the average of 55 for the core.
Ryzen aren't Intel. With an intel at idle, all the cores are chopped to low power state, but all remain active. So an 8 core Intel is going to divide the idle workload amongst all 8 cores, so no one core is overloaded and the hottest core is only running at @ 32° at any given point. The other cores sitting at 30-31°C.
Ryzens don't work that way. At idle all the cores are effectively parked except for one. Naturally that'll be the hottest core, as it carries the entire idle workload. That core might see spikes upto 70°ish, but being the hot core, that's what gets reported. Doesn't mean that the cpu is running 40-70° at idle, the cpu is closer to 30° at idle, just the single in-use core is hitting those temps. A Ryzen also rotates the cores, so no one core is overly used. Core0 is first, then every 1-3 seconds it's rotated down in sequence, 1-2-3 etc. If you open HWInfo64 to core temps section and let the pc go to idle, the rotation and temps become very obvious.
But are still governed by exactly when each core is read compared to reported.
Temps are reflective of load and power used. But there's not a cooler on the planet effective enough to instantly affect those temps. You've got workloads happening in nanosecond time periods, and that temp being read directly from the core at that instant. That temp must then travel out of the silicon, through the TIM, through the IHS, through the paste, into the coldplate to be absorbed. That takes time, a lot longer process than the change in workloads. So workloads are going to show spikes in temp, it's unavoidable, it's the difference between when the load actually hits and when it's absorbed by the coldplate. The cooler can't affect that temp any faster.
Some coolers are more effective and more efficient than others, so will mitigate the extent of range a workload is allowed to hit. The cheapo stock 4pin Intels are not efficient, so allow a larger range on the workload, whereas Noctua is very efficient, so that range is considerably more limited. The Intel might allow the load to produce 90° startup spike, the Noctua would limit that to 70° etc.
Numbers for use purposes, not exact definition.
What it boils down to is temps should be taken with a grain of salt, especially idle temps. The exact number is not nearly as important as the average, unless the exact number is well into dangerous territory. If your load temps are generally in the 80's for a heavy, consistent load, you are good. The occasional spike to 90's, no worries. Constant loads in the 90's, get a more effective cooling solution. Ryzens see the highest boosts, on more cores, for longer time periods when the cores in use are between @ 60-80°C