Performance question: "x is_type boolean" or "x <type> value"

Agreed. The second one is better. The first approach causes issues for us, because if you index on type edge, then it generates huge posting lists for us internally (topic → all nodes of type topic, phrase → all nodes of type phrase), which slows down everything.