The solution is simple - people have to vote with their dollar.
If you know of a case where a retailer has sold to a minor and you don't agree with it, show some backbone and take your business elsewhere. Not only that, inform the particular retailer of your stance, that you're not going to do business with them etc.
It may mean that you have to wait a week or two longer for that shiney new 226 or M4, but you'll be able to sleep at night.
I know of concrete cases where a retailer has sold to a minor, or sold to a parent knowing full well where the gbb/aeg will end up, and I have done the above and either import my own accessories or buy from retailers that are honorable.