Atualmente estou trabalhando em um projeto com uma arquitetura que inclui um servidor BEA Aqualogic e nos deparamos com um problema que parecia ser bem severo: O flex não conseguia enxergar um SOAPError gerado pelo ServiceBus, isso é um bug reportado no bug track da Adobe, nas pesquisas que fizemos as únicas soluções envolviam utilizar ou BlazeDS ou LCDS que no nosso caso eram soluções inaceitáveis (por conta de regras e arquiteturas definidas pelo cliente).
Após um brainstorm com nosso arquiteto e o pessoal dos dataServices e webServices chegamos a conclusão de que isso na verdade não é um erro ou bug do flex pois o header padrão para um erro de SOAP é 500 que é um http error, portanto a solução foi alterar no ServiceBus o gerenciamento de erro para que ao invés de disparar um erro com header 500 disparar um erro com header 200 e voilá o flex recebeu o erro como um SOAPError e as mensagens de erro geradas pelo dataService chegaram bonitinhas no Flex.
Fica aí a dica de como fazer para receber um SOAPError no flex.