The "killer-app" for the RP2040 is some kind of larger display controller IMO.
Displays use tons of power anyway, so 20mA power consumption of RP2040 is fine. And you need 264kB of SRAM for a good frame-buffer, and dual-core means one core can be dedicated for the display and the 2nd core can do all the other functions of your application.
Graphics are likely too large to fit on a typical on-board Flash, so you'll need QSPI (or larger) amounts of Flash anyway, so the weird bootup / requirement of Flash is made redundant.
---------
But general purpose use of RP2040? Uhh... no? Honestly, the RP2040 feels very much like a cut-down microprocessor in its design.
I guess RP2040 has the advantages of Micropython and more than enough SRAM to run larger sets of Micropython code for beginners... which is an advantage for some folk.
---------
I kind of wish that the bottom-tier of microprocessors became more commonplace for hobbyists. Full Linux 6.x kernels and 128MB with a variety of ADCs / Comparators on the SAM9x60 (ARMv5 Microprocessor with on-board DDR2 with ~50mA power usage at downclocked 200MHz)
Why run microPython? Just run Python 3 and G++.
Bonus points: idles at 2.1mA and sleeps at 200uA, so this Linux-capable microprocessor is comparable to the RP2040's idle/sleep specs. (I'm cheating though: DDR2 uses a substantial amount of power and I'm only counting CPU-power. But it still goes to show how absurdly high-power the RP2040 is in practice).