edición general

El tipo que metió el juego de la serpiente en un código QR

Por lo general un compilador siempre va a hacer binarios más pequeños y más rápidos, es muy muy dificil escribir ensamblador eficiente hoy en día con SIMD, hay demasiadas extensiones AVX, SSE, MMX, etc. y demás como para poder altamente paralelas.

Solo gente que sepa muy bien lo que hace y en partes muy concretas y muy críticas del código puede ganar al compilador. El 99% de veces el compilador lo va a hacer bastante mejor.
#18 Es que ni siquiera es práctico. A día de hoy, si haces cualquier programa (diría cualquiera mínimamente complejo, pero ya para cualquier cosa tiras de librerías... ya eso es impráctico de usar con ensamblador) usar ensamblador es morirse. Sólo para cosas muy concretas y específicas: drivers/firmwares (cada día menos), cálculo (cada día menos) y procesado de datos (cada día menos). Sólo en sitios donde optimizar a bajo nivel (o sea, gastar días, semanas o meses de un ingeniero de medio-alto nivel) ahorra cientos de miles de euros.
#20 Si, obviamente. En userspace salvo el tema de locks (a nivel de librería), debuggers, profilers no hay mucho más donde tenga sentido.

menéame