Também gosto muito do padrão Delegate! Além dos exemplos que você mencionou, ele é bastante útil em cenários de aplicativos white-label, onde diferentes comportamentos podem ser delegados sem modificar o código principal. Trabalho com desenvolvimento para iOS com Swift, o Delegate é essencial para manter uma arquitetura mais estruturada e organizada.