Your test is measuring Arduino-implementation speed, not just CPU-speed, because <...>
I do not want a cpu benchmark. With RISC hardware, the system clock determines the MIPS (excepting cores with look-ahead and branch determination and cpu pre-cache.) But for most ARM inexpensive uC's, the max clock is the determining factor; THEREFORE, 80MHz is faster than 72MHz... faster by 80/72 = 11.11%
But, as I stated, I wanted a more realistic number, and I picked at random the Prime Number sketch by Nick Gammon which I ported to the Maple Mini and later to the ESP8266. In porting the sketch, the ESP8266 required the inclusion of yield() in the inner calculation loop to avoid a WDT interrupt. The petting of the dog is not optional: it is required. If you say if could be done more efficiently, I believe you but I do not intend on qualifying that number: please feel free to do so yourself and give the forum the results.
For most programmers using ESP8266 with the ArduinoIDE, the yield() command is the "go to" command; therefore, it's use in the sketch is valid, IMO.
The question I was attempting to answer (for myself) is:
- Can the RF can be easily disabled: YES
- Is the mAh power profile similar at 80MHz compared to 72MHz STM32F103: Yes
- Can a sketch be easily modified to run on a non-RF ESP8266: Yes
- Is the performance of the ESP8266 and STM32F103 similar: No
For the small price difference from ESP8266 to STM32F103 (less than $1 USD) the STM32F103 is the better (and more sophisticated) chip.
However, if one has a demanding RAM or flash requirement where performance is not the primary concern, an ESP8266 may cost-efficiently be utilized. Also SPIFFS may be a decision maker in some designs.
The remainder of your argument is too convoluted for me to respond.