Being architecture neutral - I totally agree with James on his points. Back when I was looking at persistence frameworks I came to the conclusion that submitting my domain objects to some sort of persistence manager was the way to go. Two main reasons why, both really stemming from simplicity:
This also allows me to create the processes as POJOs for testing purposes. So a Session Bean (or any other sort of coordinating component) just has to deal with transaction management and building the process objects. It's so crazy, it just might work!