just tells that the parameter is of type 'key', not a set of type 'key'.
Yes, because that's like if you were writing
select * from Town where key in (2)
but with a marker.
Which means that if we do support that, it'll probably have to use the syntax:
select * from Town where key in ?
for compatibility reasons.
But I'd like to note that "multiget" queries are not necessary more efficient. It's not because the server don't don't anything smart about it, except parallelizing each individual queries (but that's really all it does). For that reason, doing the parallelization client side provides the benefit that you can start processing answers as they come, instead for waiting for the full result set. So even though you do "waste" a little more network bandwith between the client and server, I suspect that in a lot of use cases, you may actually get better throughput by parallelizing server side.
Anyway, that digression aside, I have no problem adding variadic IN (up to the minor syntax detail above) if only because when IN is used for the clustering key (versus the partition one), then it does always improve performance.