Кстати, ты спрашивал зачем это...
Так вот, в данном случае это нужно, что бы сделать стекобезопасную обработку цепочечной обработки промисов при использовании конкретного ранлупа (AnyEvent и что там ещё поддерживается).
Почему так, а не через метод - видимо, хотелось, что бы пользователи использовали единый класс промисов. Плюс, скорее всего, так быстрее.