I think what is happening is that in the event of a component stepping towards the center of all the datapoints while already having the largest variance(s), as the posteriors/responsibilities of all the datapoints will increase (as its coming close to the center), the variance will get larger, which will make it take another step towards the center and so on.
At the same time, it seems something is wrong with my implementation as the component that is getting "swallowed" should not be staying still, as the culprit gets the larger variance and moves closer, the posteriors/responsibilities of the swallowed one should make it move away, yet it barely budges. So it seems to just be a bug of my code.
edit: Don't think there's a mistake anymore. The large variance makes the density quite low and so the responsibilities of the swallowed cluster one barely decrease.