just because vhead is used in an earlier goal doesn't mean it is ground (has a determined value). The vars seq passed is a sequence of lvars, each constrained to be in a finite domain, but they are not ground, and vhead is unified with the first element of vars (what conso does). so vhead is not ground.
The interleaving is about how core.logic (and minikanren) handle branches in the search tree, and does not effect the order in which goals are run. It is an often sited difference between minikanren and prolog. Prolog effectively does a depth first search, if you have a branch, and the first alternative doesn't terminate (it diverges, has some kind of infinite loop), and the second alternative does terminate in an answer, prolog won't produce the answer because it gets stuck on the first alternative. Minikanran will do a little work on the first alternative, then a little work on the second, then back to the first, etc.