Leave @Stateless off of the superclass and tag the subclasses. That should work.
The fix is easy. Javassist should be able to tell whether the class is abstract or not.
Actually, you're right, I don't see a easy fix for this and it would slow down deployment as for every class, I would have to look at their superclasses to determine if they were tagged as @Stateless.
BTW, @Stateless is not an inheritable annotation so I don't think this usecase would be allowed by the specification.