Un modello anemico è semplicemente un contenitore di dati. Non contiene il comportamento. (Questo potrebbe effettivamente essere considerato una buona cosa nel paradigma funzionale.) L'opposto di un modello anemico è non un modello iniettato pieno di servizi di dominio. Stai descrivendo due estremi: entrambi sono cattivi.
Se hai un modello anemico, non stai abbracciando completamente ciò che OOP offre. Se inizi a iniettare servizi in questi modelli, probabilmente stai iniettando preoccupazioni che non ti appartengono. O quello o il tuo modello è più anemico di quanto pensi. Perché altrimenti avresti bisogno del servizio diverso da quello che fornisce qualcosa che è richiesto ma mancante? (Manca potrebbe significare anemico.)
Evitare entrambi "dice" porta a un design più strong. Hai qualcosa in un servizio di cui un modello ha bisogno? Forse dovrebbe essere spostato sul modello. In caso contrario, forse dovresti riconsiderare le tue preoccupazioni. Il comportamento di un modello dovrebbe funzionare all'interno del modello. Dovrebbe principalmente (se non solo) occuparsi dei membri. Ma ricorda, ci saranno ancora cose che funzionano su o con il modello. Ad esempio, i modelli non dovrebbero aprire connessioni TCP o ascoltare eventi UI, anche se sono in qualche modo coinvolti. Questa è la responsabilità di qualcun altro e qualcuno non appartiene mai dentro al modello.