IMHO the separation of domain model and business logic
has became an inevitable trend in most business application
The reason is that domain model often refers to conceptual/ER model, which is essentially
the data/bean objects. Thus persistence is part of the requirement of the domain objects.
While ideally POJO is preferred for domain objects (like Martin and other OO purist wished for),
in most cases they have been converted to accomodate the persistent layer
such as EJB or other O/R mapping tool due to the persistence requirement.
To embed business logic inside the domain model implies that
more (non-bean)APIs will be added to the domain model and persistent layer specific
transaction-handling logic will need to be coded inside the domain objects
which will make the domain model and implementation even uglier.
Thus, separating the domain object from the business logic does have some advantages:
1. Cleaner domain model and implementation
2. Stability of domain model on changing/different implementations of business logic
3. Separation of concern (bean persistence and business logic are separated)
Just my 2 cents.
BTW, nice article and comments.