Overplotting is not the same as removal. With your second story call, you draw a white marker with a black border. You can set the edgecolor for the marker with plot(x,y,'wo', mec='w')
.
But if you really want to delete it, take the return line object and call its delete method.
fig, ax = plt.subplots(subplot_kw={'xlim': [0,1],
'ylim': [0,1]})
p1, = ax.plot(0.5, 0.5, 'bo')
p2, = ax.plot(0.5, 0.5, 'ro')
p2.remove()
The above example leads to a figure with a blue marker. A red marker is added (in front), but is also deleted again.