AMP version of front page without plugin

is_single() will return false for Pages, so the above code as written should only work for single Posts.

You’ll need to add more conditionals to your amp_page_template() function for each of the templates you want to replace with an AMP version. Depending on your settings in Settings > Reading > Front page displays, is_front_page() might be what you’re looking for, alternatively you could try is_home().