é possível usar IoC e Rich Domain? São alguns bons exemplos, projetos de código aberto que fazem isso?
Suponho que você queira dizer DI em vez de IoC, e o projeto em que você trabalhou usa um contêiner DI como Spring. A IoC possui dois sabores principais: padrão DI e Locator. Não vejo por que o padrão Locator deve ser um problema, então vamos nos concentrar no DI.
Não acho que seja possível, ou pelo menos seria muito impraticável. O principal aspecto dos contêineres DI é que eles controlam a criação de objetos quando os injetam em outros ("objetos gerenciados"). O conjunto de objetos gerenciados ativos quando os projetos são executados é independente de quais itens de domínio existem no seu projeto, mas depende de como os objetos são conectados e quais escopos (singleton, protótipo) são atribuídos a eles.
É por isso que você não deseja permitir que o contêiner de DI gerencie seus objetos de domínio. Mas se você criar objetos manualmente (com o novo), não poderá injetar outros objetos nos objetos do seu domínio. (Deixando possíveis soluções alternativas com a fiação manual de lado.) Como você precisa dessas injeções para substituir implementações por outras, não é possível substituir a funcionalidade de objetos de domínio avançado usando DI. Portanto, você não desejará colocar a funcionalidade em objetos de domínio ou perderá os recursos do DI.
Não vejo como poderia funcionar um contêiner de DI hipotético que não gerencia seus objetos, e nenhuma das implementações existentes permite isso. Portanto, é justo afirmar que o DI depende do gerenciamento de objetos. Portanto, sempre tentará que você divida objetos em potencial do Rich Domain em uma classe anêmica e em uma ou várias classes de scripts de transação.