I am wondering, are fees mandatory?
No.
1. Does the official client enforces them?
If by "official client" you mean the Bitcoin-Qt reference client, then yes.
2. Does blockchain.info wallets enforce them? I always put 0.00000000 BTC as the fee in My blockchain.info wallet but sometime is still insists on including a fee. Why is that?
Blockchain.info does not enforce fees if you use the "custom" transaction feature. I believe it does enforce some fees on non-custom transactions.
3. I understand the current fee is 500 uBTC. At the current BTC price it is a noticeable fee. When and if it will go down?
There is no predetermined time for it to go down. At some time in the future, the developers of the reference client may choose to reduce the fee. Only time will tell.
Bitcoin is completely voluntary:
You can choose not to pay fees on your transactions by using a wallet that does not enforce fees.
Keep in mind though that the peers you connect to can also choose to relay your transaction on the network (or not relay it) if they feel that it is is part of a DOS attack (or any other reason they may have for refusing to relay a transaction). They may choose to make this determination however they like (including basing the decision on the size of the transaction and relative amount of fees). They make their decision by running a wallet that enforces the transaction relaying rules that they choose. If you don't like these relay rules, you are welcome to find (or create) a wallet that will allow you to connect directly to the IP addresses of the recipient of your transaction and various miners or mining pools so that you don't have to rely on peers to relay it.
Keep in mind as well that the miners can choose to include your transaction in a block (or not include it) if they feel that it is not in their personal interest to do so (or any other reason they may have for refusing to include it). They may choose to make this determination however they like (including basing the decision on the ratio between the fees included in the transaction and the size of the transaction). If you don't like these mining rules, you are welcome to run a miner that will solve blocks with your transactions or find like-minded miners willing to do the same and ensure that your transactions get to them.