Тут дело в разнице между спецификацией и реализацией. Java EE - это спецификации. Договоренности, как дальше жить в условиях безжалостного кровавого энтерпрайза. JPA - её часть, одна из спецификаций, например.
Hibernate - одна из реализаций JPA. По моему даже RI. Почему используются аннотации из пакета Javax? Чтобы автор мог проще поменять библиотеку Hibernate на другую без переписывания кода. Поэтому при прочих равных рекомендуется использовать аннотации Java EE.