Tulip / asyncIO: ¿por qué no todas las llamadas son asíncronas y especifican cuándo las cosas deben ser sincrónicas?

Fui a la reunión de SF Python cuando Guidohabló sobre Tulip, la futura biblioteca de asyncIO para operaciones asíncronas en Python.

Lo que quita es que si desea que algo se ejecute de forma asíncrona, puede utilizar el"yield from" + expression y un par de decoradores para especificar que la llamada a lo que viene despuésyield from Debe ejecutarse de forma asíncrona. Lo bueno de esto es que puede leer las declaraciones en esa función normalmente (como si fuera sincrónica) y se comportará como si fuera sincrónica con respecto a la ejecución de esa función (valores de retorno y propagación y manejo de errores / excepciones ).

Mi pregunta es: ¿por qué no tener el comportamiento opuesto, es decir, que todas las llamadas a funciones sean asíncronas por defecto (y sin elyield from) y tiene una sintaxis explícita diferente cuando desea ejecutar algo de forma sincrónica?

(además de la necesidad de otra palabra clave / especificación de sintaxis)

Respuestas a la pregunta(2)

Su respuesta a la pregunta