Object ID pass is relative to objects not particles.
So, if you explode an objects through particle modifier, it is same object into fragments but it is same object.
So, its pass index will be used for all fragments.
If you use a specific mesh as object visualisation of particles, its pass index will be use for all duplis made by particle system.
If you want to have a particle index per particle, you have to create another renderlayer specific to particles and render particles with a material using particle index socket of Particle Info node.
It is an obligation because there is no particle index pass or way to create one, yet.