Currently, receiving a synchronous response always requires a timeout specification. This is because the following cases were guaranteed to be deadlocks otherwise:
The runtime system might send a special kind of message in such cases to inform the sender that its message was dropped. In order to do this, the runtime system needs to have the ability to check whether a mailbox is "closed". Furthermore, a terminating actor must scan its mailbox for unreplied-to messages after closing it.
By implementing the mentioned improvement, the only remaining deadlock scenario is an actor that does not have a matching handler defined in its current behavior. However, it is the responsibility of application developers to prevent such deadlocks and libcppa would not have to enforce timeout definitions for synchronous response handlers.
Feature is implemented in the unstable branch and will be merged to master soon.