is.na works returns logical(0) for empty lists and empty typed vectors, as you would expect, but it throws also a warning for NULL values, stating it is a non-vector type. NULL is the empty pairlist, so it seems it should just return logical(0) without the warning.
In is.na(NULL) : is.na() applied to non-(list or vector) of type 'NULL'
I know pairlists are deprecated from external use, but this behaviour is a bit inconsistant given that is.na works foine for non-empty pairlists. I would imagine it should either throw an error for both examples, or neither.
> is.na(pairlist(1, 2))
 FALSE FALSE