Re: auto-parrallelise code?
I know I'm not exactly an "average" developer, but I was working on multi-CPU x86 code in 2002 (on Athlon MP CPUs if it matters).
It's not hard, or at least I didn't find it so, when you are aware of concurrency issues and know how to code parallel tasks and in particular what can be easily run or is appropriate for concurrent processing.
The hardest part was dealing with the utter ball ache that was (and still is in some ways) concurrent access to the Windows GDI, let alone the complete train wreck often involved in running anything ActiveX related concurrently.
The Intel C extensions for parallel code also make it a doddle but, again, you need to know what you are doing. IMHO the historical ghastly native support in Visual Studio for concurrency was a big problem.
As for Intel vs ARM, yes the x86 instruction set sucks balls compared to the ARM instruction set and this requires a lot more (very) clever optimisations from Intel, but even with this aside, it's just depressing how for windows applications, in much of the code 95% of the time nothing productive is being done with the CPU cycles.