Sobre o pattern em sí, no artigo do Martin Fowler que usei como referência, ele indica quando o pattern deve ser usado, e nesse caso, substituindo o uso de exceptions pois elas mostram apenas o primeiro erro de validação já que travam o fluxo de execução já na primeira falha de validação, os demais erros serão descobertos apenas nas chamadas seguintes. No mesmo artigo, ele mostra um exemplo de código implementando o pattern em uma aplicação Windows Forms com C#, sem fazer uso de exceptions, então na prática, elas nem foram usadas ao aplicar o pattern, da mesma forma como eu fiz.
O artigo do Fowler que você usou como referência, é um hands-on de como é possível substituir exceptions por notifications ao fazer validações em um código já existente, um refactoring, e no final do artigo ele entrega um código onde as exceptions foram substituídas por notifications, como eu fiz. Claro, ele como um guru de software e velho de comunidade sabe que deve deixar bem claro que não está abolindo o uso de exceptions e por isso o disclaimer no começo do artigo.