Allowing variable / low values of `k` would affect the rest of the network more than acting as a query-only node. A low-k node is only disadvantaged on the first hop. From there, it gets the full array of high-k see responses to choose from for the next hops after that.

But let's say I'm any arbitrary kind of node performing a query. Even if a k=2 node is 1 bit closer to my ultimate destination than a k=8 node, querying the k=8 node is at least twice as likely to be able to return a better result for my *next* next hop. In most (all?) cases, the odds that the 1-bit farther k=8 node is the better choice are overwhelming.

It would be more efficient for all lookups if nodes that can't handle a system-wide `k` just didn't use "link" at all. To maximize their own discoverability, they're best off seeking (with or without "link") until they find the `k` closest neighbors *in the entire system* and only "link" to them.