Comparto tu opinión en un 100%! Si se hace un análisis comparando el tiempo que un programa ejecuta código y el tiempo que ejecuta delays, el desperdicio es evidente. Pero no solo son los delays! Si un programa continuamente está monitoreando lugares de donde puede tener lugar un evento, por ejemplo que el valor de un pin de entrada cambia, se tiene otra causa de masivo desperdicio de recursos de un controlador! También aquí, usando por ejemplo los "pin-change-interrupts" o las interrupciones posibles cuando un valor análoga sobrepasa o cae debajo de un valor definido en el comparador, también aquí economizar tiene grandes potenciales.
Digamos que "duele" ver el uso ineficiente de controladores! Pero también, cuando tomamos como ejemplo el operar sistemas desde baterías o simplemente economizar el consumo de energía! Si vemos que muchas centrales atómicas o que usan carbón solo se usan para satisfacer los requerimientos de sistemas de consumidores, sistemas de control de motores, el "standby" de equipos. Realmente en un mundo de 7 mil millones de usuarios con mínimo 14 mil millones de equipos, 2 por persona, ya el ahorro de un 10% representa una gran contribución para economizar los recursos del planeta! Muy probablemente veremos que la población mundial se doblara en unos pocos años y que el número de equipos por habitante en el mundo seguramente que se duplicara por el factor entre 10 y 100!
Hay que cambiar los hábitos!