In an ideal world where people made neat and reactive code, a weapon with the returning property would return to the state it was in before it was thrown - I.e., IF it was in your hand, it returns to your hand... and IF it was not actively wielded, it returns to the non-wielded position it was in. This shouldn't be too much of a programming challenge, in reality, and I'm not sure why anyone would willingly settle for less.