Afaik, there is only one reference implementation for a specification: Toplink was the JPA 1.0 RI, and its successor EclipseLink will be (is) the JPA 2.0 RI.
Hibernate and OpenJPA are implementations of the spec, but not the reference one.
In terms of functionality described in the JPA spec, any of these implementations should behave the same. Additionaly, each one provide specific extensions, that are not 'JPA compliant', but can be useful (for example, the Hibernate Criteria API is not part of the JPA 1.0 spec, and I miss it).
I would say that for a standard application, Hibernate seems to be the mainstream framework, and has a great forum/community (and also a great Spring integration, as I'm a Spring fan ).
For an enterprise application, I'd stick with the implementation coming from the targeted application server (just to avoid depending on another set of libraries): Hibernate with JBoss, OpenJPA with Websphere and Weblogic, EclipseLink with Glassfish.
If anyone knows compatibility problems between some JPA implementations and application servers, or implementations problems with respect to the JPA spec, I'd really be glad to improve my knowledge on this topic