I'm not an expert, and I've only just skimmed the paper, but it seems to me that this is a kind of
partial evaluation for Prolog, eh? (Perhaps "partial resolution" is more technically correct?)
I think some Prolog systems do something like this already as an optimization, but I could be totally off on that.