@Stateful is a kind of session bean which keeps a state during its lifetime. The simplest example is a shopping basket. The client can invoke this bean several times and every time a request will go to the same bean (so he can check its state).
which is the benefit of using EJB 3 / Hibernate instead of using EJB 3 and his anotations?
"EJB 3 and his anotations" --> EJB 3 is a specification and it contains specification of JPA 2.0 and that's it, nothing more. Hibernate is an implementation of JPA so it should be the same. The true is that each vendor wants to be better than others and they added some extra feature. So Hibernate is more powerful than specified JPA. The same is with the EJB implementations.