как будто тебе пять ... хорошо: темы плохие, асинхронные хорошие!
теперь серьезно: потоки подвергаются накладным расходам - как при блокировке и переключении интерпретатора, так и при использовании памяти и сложности кода. когда ваша программа связана с вводом-выводом и много ждет, пока другие службы (API, базы данных) вернут ответ, вы в основном ожидаете простоя и тратите ресурсы.
смысл асинхронного ввода-вывода состоит в том, чтобы уменьшить накладные расходы потоков, сохраняя параллелизм и упрощая вашу программу, избегая взаимных блокировок и уменьшая сложность.
подумайте, например, о сервере чата. у вас есть тысячи соединений на сервере, и вы хотите, чтобы некоторые люди получали сообщения в зависимости от того, в какой комнате они находятся. делать это с потоками будет намного сложнее, чем асинхронно.
re deferred - это просто способ упростить ваш код, вместо того, чтобы дать каждой функции обратный вызов для возврата, когда операция, которую она ожидает, готова.
еще одно замечание - если вы хотите гораздо более простую и элегантную среду асинхронного ввода-вывода, попробуйте tornado, который в основном является асинхронным веб-сервером, с асинхронным http-клиентом и заменой отложенного. это очень красиво написано и может быть использовано в качестве универсальной среды асинхронного ввода-вывода.
см. http://tornadoweb.org