Right, but since all this data is available, they can trace it (remember, in your scenario, that they also have internal ids for transactions and tie them to users, and that is how it is resolvable). Surely they should charge a retrieval fee and return the money.
That may be true that they could probably trace it, but how would you propose "returning the money" when it's already sitting in another person's account?