Added a check for the single.php template, if it is absent, index.php wi...

Single.php is not a requirement for a WordPress theme. If a comment is not accepted, and if the single.php template is not available, index.php should be used. It is the only alternative you can be sure that will exist. For my theme, this works fine. It only has an index.php.
Hm. These alternative pages do not necessarily contain the comment form?

In case Mollom is unsure, the plugin has to be able to re-render the page that contained the original form from which the user posted (and user input should be re-injected for UX).

Potential root cause:  What causes this code to trigger the single(-comment?) page template, instead of the page from which the comment has been submitted?