А
там в назначении яно указано:
Позволяет избежать привязки отправителя запроса к его получателю, давая шанс обработать запрос нескольким объектам. Связывает объекты-получатели в цепочку и передает запрос вдоль этой цепочки, пока его не обработают.
и в примерах, и в объяснении упор на то, что неизвестно, кто именно может обработать сигнал, поэтому мы и отправляем его по цепочке
а в цепочке уже кто-то сам выберет, что это сигнал именно для него
миддлвари более верно можно описать паттерном "строитель", но почему-то все прицепились к цепочке обязанностей