Catch erroneous (singleton) recursive definitions

We can't safely bypass the extra immediate reference check even when
only one definition is involved in the recursion.
Merge pull request #728 from dylex/master

Catch erroneous (singleton) recursive definitions