In some respects it must be invariant because it is hardwired into
binaries: some names are even in POSIX (/dev/null, /dev/full).
Without /dev/zero nothing will work, because the dynamic linker uses it.
This may as well go into the kernel, because nobody can ever change the
name without breaking things. Changing this sort of name is why devfs's
new /dev layout was so hard to adapt to.
In some respects it must be tunable by the local admin: only the admin
knows what groups and permissions she wants on any device, and only the
admin knows what she wants to name the USB flash disks that people plug
in. (These names are generally provided to automounters, or mounted by
hand, so it doesn't matter that their names are unpredictably set by
In some respects, all that matters is that the name is *consistent*: e.g.
local fixed disks, which are often referenced in files such as /etc/fstab.
Much of the policy for that may as well go into the kernel, because nobody
really cares *what* the name is as long as it doesn't change.