There are lots of ways of programming ATMegas (and most microcontrollers).
First: ask yourself "what exactly is a boot section". The answer is: an area of code with separate lock bits or other controls, that allows a microcontroller to program its own "main" code section.
The most frequently used method during development is to use a bootloader which accepts some code and the device programs its own main memory.
But you can also just program it, with, for example, parallel or serial programming. These are most commonly used method for production units. Then you don't need a boot section at all, and can reset to address 0. (In ATMega, see BOOTRST
control bit.)