Any time you have a bidirectional relationship with an @ManyToOne one side and a @OneToMany on the other side you should do this. I think it sounds like you have an idea of the advantages. Maybe I am not understanding the question.
Yes whenever you have a one to many or many to many a join is performed.
From the docs...
Since many to one are (almost) always the owner side of a bidirectional relationship in the JPA spec, the one to many association is annotated by @OneToMany(mappedBy=...)
Troop has a bidirectional one to many relationship with Soldier through the troop property. You don't have to (must not) define any physical mapping in the mappedBy side.
To map a bidirectional one to many, with the one-to-many side as the owning side, you have to remove the mappedBy element and set the many to one @JoinColumn as insertable and updatable to false. This solution is not optimized and will produce some additional UPDATE statements.
The owning side is the entity whose table has the join column. If you are using mappedBy the OneToMany is always the inverse side and the ManyToOne is always the owning side this is the most typical usage. Now say you instead chose to use a join table instead (this is not done as often especially if its bi-directional). In this case the one to many will be the owning side it might look something like this
The table EMP_PHONE is a join table and does not correlate directly to a Entity. In this case the @JoinColumns are defined on the OneToMany side (if you were doing this you usually would not have a @ManyToOne side unless you are conforming to an existing ddl which had the join table). This would be one case where the OneToMany is the owning side.