Python set Union e set Intersection operam diferentemente?

Eu estou fazendo algumas operações de conjunto em Python, e notei algo estranho ..

>> set([1,2,3]) | set([2,3,4])
set([1, 2, 3, 4])
>> set().union(*[[1,2,3], [2,3,4]])
set([1, 2, 3, 4])

Isso é bom, comportamento esperado - mas com intersecção:

>> set([1,2,3]) & set([2,3,4])
set([2, 3])
>> set().intersection(*[[1,2,3], [2,3,4]])
set([])

Estou perdendo a cabeça aqui? Por que o set.intersection () não está operando como eu esperava?

Como posso fazer a interseção de muitos conjuntos como eu fiz com a união (assumindo a[[1,2,3], [2,3,4]] tinha um monte de mais listas)? Qual seria o caminho "pythonic"?