Using index.php as page template

You can use it as a page template, just as any file with such a header can be used.

That doesn’t necessarily mean it’s a good idea. The template hierarchy already uses index.php as a last resort if it cannot find an appropriate template for a page/post/listing etc, so a specific page will already have template filenames matched to it that will be looked for, e.g. page-{slug}.php or page-{id}.php or page.php etc

Using index.php as a page template potentially muddles up your theme structure by making it dual purpose, and complicates things for any other developers ( who can then point it out and make you look bad to the client ).

The ability to do this is not deliberate. There are no rules as to which files can and cannot be detected as a page template. So long as the file has that header comment it will show up. So header.php can be used, so can footer.php, and you can create a terrible mess doing so, and there’s nothing to stop you.

So I would recommend against it, but it is possible.

If you’re looking to prevent code duplication, I instead point you to the get_template_part function. You can separate out the common components into separate files and include them, and it’ll also handle child themes and subfolders.