Because often you will want to assign some data to point back to a vertex. I mean, a graph holds a vertex -> custom data mapping, but that custom data will want to keep vertex id back. Thing is it has to store some "invalid" value before mapping happens and that is when null_vertex() helps. I hope that is clear enough.