Have we forgotten what MSRP stands for? Or at least what the S stands for? Unless the price is stipulated in the AIB contract they're free to set whatever price they want.
And as long as there's so many suckers willing to pay the inflated prices there's no reason at all for the AIBs to pay any attention to what the MSRP is. Why would you charge $500 for a product when it'll sell out at $750, $1000, or even $1500? This is exactly why people keep scalping the cards as well.
Have a little self control. Stop buying overpriced cards. If they can't sell at the inflated prices they'll drop the prices until the cards sell, or they'll have no sales until they do.
Same applies to the retailers. Both are elements that AMD can't really control directly, and attempting to do so would be illegal (price fixing). AMD could go back to what ATi used to do, make a self branded card and sell it directly on the website... but even then it doesn't entirely help. You can see how that has generally worked out for nVidia's self branded and sold cards.