It is really personal preference and how you want you (and your editors) to edit the content.
In most cases, the homepage has some dynamic content pulled on to it. The editors create the content in the content search manager, like news releases or promotions, or features and the like, then in the template I code the pulls/display of these so the editor does not ever touch the homepage itself.
In other cases, the content has been more static and I have made it a container so the editor can directly add the content to the homepage via the page editor.
In other cases where it never needs to change and there no editors, you could statically put the content as html right into the template. But then when it does need changed you have to edit the template directly.
So you see it all depends on your use case.