I've sent 0.01 BTC to an address to check the system is working (auto generation of address) without any fee and it is. But now I cannot send my 0.01 BTC back because it requests a small fee of: 0.005 BTC. I've tried with the GUI and RPC and it is the same behavior : "Error: This transaction requires a transaction fee of at least 0.0005 because of its amount, complexity, or use of recently received funds".
Ok now I would like to understand why is there such a limitation (I mean why didn't have I to pay a fee for the 1st transaction but only for the 2nd?)? Is there a way to send them anyway and wait even if it has ridiculous low priority? It's been 3 days that I test it so the "recently received funds" should have expired?
The reason is a limitation in most currently active nodes on the network, which block (do not even forward) transactions that look "spammy" (too large, using too recent funds, or too small outputs) if they do not carry a minimum fee. We've been decreasing the minimum fee the past few versions, hoping to move to a more flexible scheme somewhere in the future. However, for some transactions now, if they do not carry a fee, there is a chance they will not be relayed at all by the network, effectively placing your coins in limbo. As a protection for the user, the client will not send without a fee in such cases.