Exactly – we can't expect banks to pay when their customers get themselves scammed.
I think the solution is escrow. I am biased, because I work for an escrow company, but I've never seen a more effective approach. Hold the money until the buyer has what they paid for, and only then release the money to the seller. (To be fair, escrow does tend to be more expensive than simple money transfer, so it's not all upside.)