Eu mudaria sua pergunta e diria: quando um evento baseado não é a solução certa para um aplicativo orientado a objetos? Eu acho que a maioria dos aplicativos OO pode se beneficiar se eles forem projetados como produtores e consumidores de eventos.
No final, uma "chamada de método" é de fato uma mensagem que chega a um objeto e o objeto é responsável por decidir se fará algo com a mensagem e executar a operação. Isso não é muito claro em linguagens fortemente tipadas como Java, mas se torna mais óbvio em linguagens dinâmicas como Ruby.
Outro ponto interessante ao projetar um aplicativo como baseado em eventos é que geralmente os componentes internos precisam ser adequadamente isolados e coerentes; caso contrário, o código se torna uma bagunça muito, muito rapidamente. Como exemplo, eu realmente gosto do conceito de Arquitetura Hexagonal usado por Alistair Cockburn, pois esse padrão geralmente cria um melhor encapsulamento e força (na minha opinião) componentes mais coesos.
Acho (mas provavelmente estou errado) que isso também esteja relacionado ao conceito de Design Orientado a Domínio de Eventos de Domínio , no qual as classes de domínio emitem eventos que são capturados por outros objetos e esses objetos emitem outros eventos (você vê onde isto está indo: D). O que eu gosto nesse padrão é que diz que as interfaces devem modelar funções, não implementações.
Desculpe se não faço muito sentido, tenho experimentado esses padrões nos últimos meses com resultados surpreendentes, mas ainda estou tentando entender os conceitos e até que ponto eles alcançam.