Python set Union y set Intersection funcionan de forma diferente?

Estoy haciendo algunas operaciones de set en Python, y noté algo extraño ...

>> 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])

Eso es bueno, comportamiento esperado, pero con intersección:

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

¿Estoy perdiendo la cabeza aquí? ¿Por qué set.intersection () no funciona como esperaba?

¿Cómo puedo hacer la intersección de muchos conjuntos como lo hice con la unión (asumiendo la[[1,2,3], [2,3,4]] tenía un montón más listas)? ¿Cuál sería el camino "pitónico"?