MicroPython (nebo fork CircuitPython) je skvělá věc, když si to můžete dovolit (chce dost ROM i RAM). Máte pak v podstatě i na mikrokontroleru ekvivalent ssh přístupu a dá se velmi dobře ladit a vyvíjet. Na ESP s MicroPythonem to jde i přes wifi, over-the-air updaty jsou automaticky k dispozici.
Co se Arduino knihoven týče, ani mi tolik nevadí ta organizace do setup/loop funkcí. Je to primitivní, ale nic mě nenutí to používat - chovám se k setup() jako k main(), a v ní si napíšu vlastní event loop nebo cokoliv chci. Nebo jejich main.c s vyhodím úplně a používám vlastní main.c s klasickou funkcí main.
Co mi na nich vadí je ta kvalita. Je to jak kdyby někdo vzal desktop program a jen ho portoval na free-standing AVR. Všude drahý lookupy, zbytečný volání funkcí bez cachingu, ve standardní knihovně se používá heap, což je na mikru s několika sty bajty paměti sebevražda, atd.
Ale lidi jsou nepoučitelný. Rok co rok dělám na projektech, kde firma nejprve udělala proof of concept na Arduinu, pak si řekli "počkat, ono to už funguje!" a místo opravdového vývoje jen vzali Arduino a překlopili ho na custom desku. Po roce "dolaďování" bývají obvykle připravení to zahodit i s rukama :-) protože AVR je finanční a časová sebevražda.