ich merkt halt dahingegen dass es funktioniert
Es funktioniert nur,
weil du in der Schleife neu bestimmst, an welcher Position das Element steht das du löschen willst. Die Alternative bei einer reinen Pointer-basierten Liste (fester Index und rückwärts) funktioniert natürlich noch genauso.