>> are the reasons why I always favor Hibernate+EntityManager
Yes, I hear you... that's why its a very big decision. For example openJPA has done the reverse of what I'm suggesting for Ebean - they have tried to additionally adopt the Hibernate approach to enhancement.
>> Why do you want to change the bytecode enhancement process at all?
It is all about field vs property access. I need to be a lot more explicit in this so I'll detail this at the end with a separate post.
>> ... can't you simply support all of the strategies?
Yes'ish. The issue with this revolves around runtime subclassing (what Ebean does currently and Hibernate does mostly) and how that works for field access with inheritance hierachies (aka thats the hard/messy bit).
As I see it you are suggesting something along the approach taken by openJPA. They got so much stick due to difficulties with their enhancement process that they wanted to provide subclassing based enhancement like Hibernate (and Ebean up to 0.9.7).
From my perspective they have ended up with something that runs different ways in different environments which I think it confusing.
The technical issue/difficulty here is that this gets hard/messy if you want field access with an inheritance hierarchy. If you look at section 2.4 Omitting the JPA Enhancer in the openJPA docs you may see that they too found this hard (they don't do it).
So if you stick to property access or never use an inheritance hierarchy then yes what I'm suggesting is a potentially a BIG detraction for current Ebean users.