Indirection through a Model, _if and _is

(Bug, Closed -> Fixed, Priority: Critical, Test Status: Unit tested , Reported By Bad Link: Thing 3y284oe not found, )
Summary: This one is just plain strange -- see the Details
Eric hit this, on this page (email, 9/23/17):
Just ran into a problem, started using Querki Explorer to diagnose, and I'm baffled.

This Thing has a Spirits Used Property which is a List of 3 Spirits.
Each Spirits has a Which Game Property, which is a Thing type, linked to one of two Things:: Already Printed or Expansion #2 Candidates
Each of the code blocks below is what I typed in Querki Explorer followed by the (plaintext) results.

Test 1 goes as expected:

Spirits Used -> Which Game

Already Printed Already Printed Expansion #2 Candidates

Test 2 also goes as expected:

Spirits Used -> Which Game -> _is(Already Printed)

true true false
Test 3 goes off the rails:

Spirits Used -> Which Game -> _if(_is(Already Printed), ""printed"", ""not"")

printed printed printed
Did I screw up syntax somehow? Test 4:

Spirits Used -> _if(Which Game -> _is(Already Printed), ""printed"", ""not"")

printed printed printed
...I have no idea what's going on. Help?
This one's damned weird, especially because wrapping the later stages in _foreach (or nested quote/bracket pairs) causes it to go away. The only esoteric thing about it appears to be that Already Printed is a sub-Model, not an Instance. WTF?

This repro's in isolation. Given two Things named Next One and Yet Another, I do:
<Next One, Yet Another, Next One> -> _if(_is(Next One), ""yes"", ""no"")
and it prints out "yes yes yes". So something's clearly weird in the combination of _if and _is.