Then it ought to document that it assumes that entry exists and that this walk will not hit the end of the list. Which also implies the list is not empty.
It should, yeah, but if it can safely assume there will be no nulls, it will save a nontrivial amount of defensive programming checks for each cycle. And IIRC, the Linux kernel uses tons of linked lists, millions of items per second sometimes; any operation that can be removed will make a big impact. Relatively.
But for general purpose code, e.g. libraries where performance isn't super important but stability is, more defensive programming would be a thing to do.