As far as I can tell, the particle sets/intersection job uses the path of the blob only and not the path and section number, so if you do a path-based intersection with imported particles every particle from the same stack is equivalent. The “path” mode for particles should use both.
For example, a particle with rlnImageName 0001@path/to/stack.mrcs and another one with 0002@path/to/stack.mrcs should be considered as different. Right now, if I import one class with say 56,000 particles (set A), and one from another job with 14,000 particles (set B), and do an intersection on path with ignore UID, the A - B set has ~17,000 particles. More particles have been removed from A than even exist in B, but it makes sense if what is going on is that every particle in B has its entire stack worth of particles removed from A.