Não há grandes diferenças de eficiência até onde eu saiba exceto em certos casos, como ordenar por data (já que os ObjectIds têm a data e hora neles, etc.)
Por exemplo, você perderia a capacidade de simplesmente ordenar pelo _id você também perderia os benefícios de fragmentação e distribuição . Além disso, enquanto eu ainda usaria pessoalmente os ObjectIds ... contanto que o int é estranho (é claro) ... você deve estar bem.
Desde o _id sempre "volta" em uma consulta, suponho que você economizaria um pouco de tempo e transferência de dados (um pouco).
Você pode até mesmo tornar seu _id uma matriz, se você quisesse, e tudo indexaria bem, veja isso resposta (não que eu necessariamente recomende isso na maioria das vezes.)
Consulte também:Otimização de IDs de objeto