First, you have to understand that every transaction has to be included in a block to be confirmed. Miners are the one's who do that and also they are the persons who take the fees you are paying because they are doing hard work to mine a block.
There are some wallets wich dont take fees for transferring bitcoin through the same wallet. One of them is Coinbase(remember that this is an exchanger,not a wallet) and you dont have to pay fees if you are transferring bitcoin to another Coinbase wallet.
Be careful of wallets that promise free fees for any bitcoin transactions. That is pretty much impossible,especially with the fees that bitcoin have these days. Maybe for a short time they afford to pay the fees for a few transactions but after that it could become a scam and stole your bitcoin.
This is not true. Coinbase charges you fees from transfering from one coinbase wallet to another. I used to have two wallets there and when I was new, I was testing and they charged me a fee for transfering from one coinbase wallet to my other coinbase wallet.
That is true, and a lot of people are not aware of that. The same happens when you send bitcoins to another addres on localbitcoins.
When you send to another guy who is using localbitcoins too, they will say that the transaction has been sent to another party, and it means that it was an internal output, because it was sent to another wallet using the same provider, and they do not charge fees.
The same happens when you use Coinbase, xapo, coinomy, and a few more, they all are using the same protocol when you send money to another guy using the same wallet/provider.
I know this is true for localbitcoins.com, but not on coinbase, they charged me a fee when I was transfering BTC from one coinbase account to my other coinbase account. This was when I was new, I no longer use Coinbase as a wallet.