Here are some interesting situations that would require a super() that ..() alone can't do.
atom/movable/Del()
if(loc)
if(target)
target = null
if(targeted_by)
targeted_by.target = null
targeted_by = null
return
..()
obj/spell_particle
New()
..()
spawn(3) del src
Del()
..()//we'd like this to just delete without checking targets, but we have no way to accomplish that
In the above example, spell particles will have to do what atom/movable has defined them to do in Del(), which is to clear references so that garbage collection can remove these atoms at a better time. Unfortunately, spell_particles don't have targets and can't be targeted, so we can't get a performance increase by overriding the Del() functionality (it is a built in function).
One would have to adopt a weird code convention by creating their own "Delete()" proc and using it instead of Del, and then handling it in a complex manner adding additional overhead.
This could be solved with a super()
obj/spell_particle
Del()
super()//overrides atom/movable, calls built-in functionality