Fake reviews are just another form of marketing, like traditional junk mail. Making mail spammers pay postage doesn't seem to have changed the fact that most of the snail mail I get is junk, even in the digital age. Charge reviewers a quarter or a dollar to leave a review. If I was passionate enough -- one way or the other -- to leave a review, I'd pay it! I'll bet it would squelch the fake reviews overnight. Just tune the charge to find an acceptable signal-to-noise ratio.
Incidentally, this was the motivation behind a PoW system called Hashcash: https://en.wikipedia.org/wiki/Hashcash.
Except the spam email problem was solved without opening the door to another place where uninformed consumers could get nickle-and-dimed? Aren't we all glad the pay-for-email push failed?
I don't know what law this is but I'm sure if someone ever got angry enough at Amazon and hit them with a massive lawsuit to enforce the fake review problem, Amazon would probably fix it within a few months. Amazon's pretty proactive and they tend to respond best to lawsuits. I follow lawyers for Amazon sellers who sue or threaten to sue Amazon and/or Amazon sellers in the US.
What would be the incentive to come clean to Amazon about your own fake reviews? I don't think the people who sell fake reviews are likely to grow a conscience spontaneously.
Imagine how much less spam we would have if it cost 1 cent to send an email. Friction can do a lot of good.
This is all to say that it looks like Amazon and others (e.g., Steam) are doing the right thing in requiring a verified purchase in order to leave a review.
But it does seem like there's an easy improvement that Amazon could make: offer amnesty to people who report (after the fact) that they left a fake review. The review would be marked internally as fake (and this would impact rankings, etc.) but the vendor would be none the wiser.