É it is because of this rule.
If  B.X and *.X appear in the zone with origin X then a query for Z.X would return the wildcard data. The wildcard answer would not apply for question for B.X, A.B.X or X.

One more example:
$origin foo.
@     SOA
         NXT a
a       A
a      NXT a.b
a.b    A
a.b   NXT a.c
a.c   A
a.c   NXT a.b.c
a.b.c    A
a.b.c   NXT @

QNAME: d.b.c QTYPE A

a.b.c.foo    NXT foo        (proofs that d.b.c does not exist)
a.c.foo       NXT a.b.c.foo   (proofs that *.b.c does not exist)
a.b.foo   NXT  a.c.foo         (proofs that *.c does not exit)
foo   NXT  a.foo            (proofs that * does not exist)

Bind9.3s20020722 does not optimize for that yet.