When you set the transaction fee to zero be prepared for the waiting time. Also you run the risk that the transaction might not get picked up by miner to be confirmed to the blockchain.
of course!!!
miners gain with transaction to confirm it, ranking it by fee, from the highest to the lowest...
miners pay electricity with the gain derived from transaction fee...
and another thing to not undervalue...
transaction fee are done to avoid a network block...
imaging, if a hacker want to do an attack, will generate a lots of transaction with 0 transaction fee...
but this amount of transaction are not gathered by miners, and the network it is safe!!!