Where to place template files?

Using include makes it impossible to child theme that file. You will also find that some things that depend on global variables will not work. This is because the function that loads templates also globalizes a bunch of variables. You will also not trigger the actions attached to get_header, get_footer, and get_sidebar, which some plugin out there might depend on. Always using the API when possible will maximize the compatibility of your theme with the rest of the WP ecosystem.