Thank you for your replies.
First of all, the fact that unused Flash are all FFs is not a lie. Flash is always erased first and then programmed, so if a flash memory region is not present in a hex file, then it's safely can be assumed to be all FFs.
And why would you do it, anyway?
There are several reasons for that:
1. In bootloader, validity of the user program is verified by calculating checksum of the whole user flash memory. Bootloader doesn't know how much of the user flash memory is actually used and has to calculate over entire user space, including all the unused space, which are FFs.
2. If I explicitly fill the unused space with FFs, so hexmate could properly calculate the checksum, as I already mentioned, it will put them in a .hex file as a bunch of useless FF-lines, which will increase the programming times (especially in bootloader, where program is transfered using UART).
3. The FF-fill also messes up the cipher program, which parses and encrypts the .hex file.