Opino que el C se adapta más a la mayoria de las aplicaciones que el assembler.
El C es más portable.
El C permite desarrollar aplicaciones con lógica complicada de una forma simple.
He hecho proyectos complicados, con mucho manejo de datos en Assembler y si bien es posible (por supuesto siempre lo es) es realmente muy tedioso, lleva tiempo y también cuesta mantener ese tipo de código.
Para aplicaciones de gran uso de hardware, control de algún otro hardware en tiempo real, el assembler suele ser una opción casi única pero no quita que el C le gane en todo lo demás como opción más elegante.
Saludos