There was discussion in [1] about improvements to list manipulation in several places. But since the discussion is not related to the topic in that thread, fork a new thread here and attach a patch to show my thoughts.
Some are just cosmetic changes by using macros. The others should have performance gain from the avoidance of moving list entries. But I doubt the performance gain can be noticed or measured, as currently there are only a few places affected by the change. I still think the changes are worthwhile though, because it is very likely that future usage of the same scenario can benefit from these changes.
+1
Perhaps list_delete_nth_cell needs to check NIL too?