Pessoalmente, eu iria com uma coleção separada, principalmente com o propósito de manter seus objetos de usuário/local pequenos, já que você pode ter um número ilimitado de check-ins por usuário/local. Se você colocar um índice em user_id/timestamp e place_id/timestamp em sua coleção de checkins, as consultas para um determinado usuário ou local serão eficientes. Um segundo benefício de usar uma coleção separada é que o MongoDB não terá que continuar movendo seu usuário ou objeto de lugar quando crescer muito. Em vez disso, ele continuará anexando à coleção de checkins, o que deve ser bastante eficiente (10s de 1000s de inserções por segundo por shard).
Devo também mencionar que não armazene os IDs de check-in no local nem no documento do usuário, pois você obtém o mesmo benefício de desempenho ao ter um índice em place_id ou user_id no documento de check-ins.