Unfortunately I think EJBs do have to have a version with @New as well. Section 3.12 says "For each managed bean, and for each session bean, a second bean exists which" etc.
In order to let the EJB plugin handle this in a way that the common webbeans-impl code can understand, I'm thinking of the following:
1) Remove the creation of current NewBean impl from EJBUtility. Let the plugin do this in defineSessionBean as it understands its EJBBean code better than we can in common code.
2) Make NewBean an interface, so that anyone can implement that interface, and we can just check for the interface to know we should be ignoring Specialization, etc.
3) Rename the current NewBean implementation class to something like NewManagedBean, and have it implement the NewBean interface.
All the places where we construct NewBean's will need to be changed to use #3 (which is only 2 utility method I believe), and all of the checks for NewBean can remain as they are now.
Another alternative would just be to check for the @New qualifier rather than "instanceof NewBean", but the spec doesn't really forbid that annotation from being used elsewhere.