Why is a minimum transaction fee for 0.01 BTC *sometimes* enforced
This depends on the priority of a transaction. If an input (coins you received from an earlier transaction) was not used for a longer time, its coin-age (equal to confirmations) increases and therefore the priority. 

If the priority is equal or above middle-priority (thats what the bitcoin-core client and the blockchain.info side calls it) it does not require fees. So when you send your first bitcoins, those had a high enough priority to get shipped for free. Then you tried to send them back immediately, with a low priority, so you were forced to set a transaction fee.