There's no reason to use OneToOne if the association is a ManyToOne, and vice-versa. Use the appropriate annotation, which reflects the reality of the cardinality of the association. Not doing so would only confuse the developers of the app, if not Hibernate itself.
Whether the uniqueness of the source is constrained in the database or not doesn't change anything for Hibernate. In my experience, Hibernate does create the unique constraint in case of a OneToOne, and if it doesn't, then you should create it (I wouldn't use Hibernate to create the schema anyway, except for a quick 'n dirty demo app).
But of course, if there is a unique constraint, and you try to create two different entities with the same target entity, that will fail due to an error thrown by the database unique constraint.