The "virgin" flag was being threaded rather than treated
like an environment. As a result, the second and subsequent
recursive definitions in a module were not getting a
correctly-initialised fixpoint loop, causing much worse
strictness analysis results. Indeed the symptoms in
Trac #4924 were quite bizarre.
Anyway, it's easily fixed. Merge to stable branch.