See you have one to one relationship between your objects. And in one-to-one relation, the reference will be transferred(write over) not copy over.
in the first case f1-->b1 f2-->b2
after you execute f2.setBar(f1.getBar());
the scenario will be f2 --> b1 but not f1-->b1 or f1-->b2..it will be f1-->null (there is no bar object assigned to it now) since they have one to one relation ship. so if you call f1.getBar()you will get null.