O que você está vendo está exatamente correto a partir da definição de associações e da consulta subjacente que corresponde à cláusula "in". Atualize você pensando em "in" como "no conjunto" de distinto objetos http://en.wikipedia.org/wiki/Set_(mathematics) A busca para userlist tem uma consulta subjacente na coleção User com uma cláusula $in, consulte http://docs.mongodb.org/manual/reference/operator/query/in/
Para a associação @task.userlist, você obterá apenas os documentos na coleção User que correspondem à cláusula $in, a coleção User é o "assunto" principal.
User.where(:user_id.in => self.user_id)
contra
self.user_id.collect |user_id| do User.where(:user_id => user_id).first; end
Para obter "duplicatas" da consulta anterior, você teria que ter documentos duplicados na coleção de usuários, sério.;-)
Espero que isso ajude a sua compreensão.