Near wallet.dat I have wallet.dat.rewrite? If I delete this file I send bitcoins without fee, if I restore this file, fee is again.
Having a fee required has nothing to do with whether or not that file exists. When a spend transaction occurs, the code looks at your wallet and based on the makeup of the coins it will determine if a fee will be required. So that is why one transaction might not require any fee, and the next transaction, nearly identical and just a few seconds later might differ and a fee is required.
As far as wallet.dat.rewrite, that can be purged. If you are worried about security, you can spend your entire balance to a new address (that is now protected with encryption) so that the old addresses (prior to when you started encryption) have no balance. And, of course, no longer use those old addresses for any incoming payments.