Использовать ABC не обязательно. Есть множество литературы, например
Марк Саммерфильд. Python на практике... и другие есть примеры где патерн Наблюдатель
создан без такого наследования.
Особенно все что касаемо Питона 2.7.
Но пусь питона - постояное улучшение и именно для этого в Питон 3 было введено понятие из Java
abc, которое позволяет писать более грамотно,(ИМХО в данном случае если архитектор задаст определенные правила то можно быть уверенным что джуниор не сможет забыть написать требуемую реализацию.)
В данном PEP это как раз объяснено
https://www.python.org/dev/peps/pep-3119/