Во первых, разве вызов super не должен выглядеть так:
super(Example, self).__init__()
?
Когда мы переопределяем метод в потомке класса, то мы можем заново реализовать всю работу этого метода, и тогда вызов super не нужен вовсе.
Если мы хотим только немного изменить поведение метода, то нам остается в подходящем месте встроить вызов метода родителя, сообщив среде исполнения родителя какого типа мы ищем (в вашем случае Example) и ссылку на текущий экземпляр (это self).
Теперь собственно ответ на ваш вопрос: инициализация класса родителя может быть сложным процессом, потому что свойства предка сами могут быть объектами, которые важно правильно построить и инициализировать, и если вы не готовы делать это сами, в каждом случае, когда создаете нового наследника, то вы можете вызвать super.
Только вызывайте его правильно. :)