1) I think that deleting course_modules not having activity instances is ok, as far as they only can lead to problems here and there. And there is nothing we can recover there.
2) Surely we could do also the inverse: look for instances not having course_modules, and perhaps offer to "revive" them.
3) And surely we could also, look for correct modules missing sections, and perhaps offer to "revive" them too.
But, for sure, only in 1) we can delete (cannot recover anything). IMO both in 2) and 3) we should not delete, there is information to recover.
Also, it would be worth knowing how/where the system arrives to any of the 1), 2), 3) situations above. They simply should not happen.
Perhaps... the section ones (3)... are about course which number of sections has been reduced in the course config page or so? Just guessing...
But, for sure, delete only when there is nothing to lose (1). Ciao