DataHandler для того и задуман, чтобы читать данные, когда они поступают. AcceptanceHandler - отвечает за подключения, DataHandler - за данные.
До этого он содержал Reactor::Connection для разделения получения данных и их обработки. Но Reactor::Connection - с самого начала казался лишним делегированием + необходимость обращаться к содержащему его DataHandler при операциях с сокетом (
Прямое наследование понятнее