The last function does not actually return the last related record. I returns a value from the last related record where the field is not empty.
IsEmpty (Last (Movements::Returned Date))
will never be true.
But you may be able to sort the records in the relationship such that the most recently added record is the first record instead of the last. And then your expression can be:
If( IsEmpty ( Movements::Returned Date); Movements::Allocated To )