Before some days ago, i also was thinking about it, but why it is not total free? Some wallet charge, amount transfer charges and bitcoin change into other currency than they charge us. But it is an other question.
About OP you ask a good thread. I also clear my mind from member's reply.
You can send transactions (without transaction fee) for free. It is however not recommended as pools ignore these transactions resulting in you having to wait more than a day in some cases. And that's when you're lucky.
Small transactions without fee mostly don't get confirmed at all. The only thing you can do is wait for the coins to return to your wallet, or double spend with this time an appropriate fee included.