My comment means, when the new element is equal to the current min value, push it to both stacks. Think what happens if we only push to the main stack. If we only push x to the main stack, and then pop, x will be popped, but we shouldn't pop anything from the min stack, because if we pop anything from the min stack, after this push(x)-pop(x) sequence, min stack will be different from its original state, which is incorrect. But how can we determine we shouldn't pop from the min stack, only knowing the value of x? We can't. Using your strategy,
in case 1, we push 4,3,2. Then main stack: 4,3,2; min stack: 4,3,2. Now pop, we should pop 2 from both main stack and min stack.
in case 2, we push 4,2,2 Then main stack: 4,2,2; min stack: 4,2. Now pop, how can you know whether or not should we pop 2 from min stack? In this case we definitely shouldn't. But when both of them are 4,2. then we should pop 2 from both of them, again, how do you know that at this time we should pop from both stack?
So the point is, it's impossible to write a pop() method, if we don't store duplicate minimum value in min stack. hope this answers your question