An interesting (well, to me, anyway) discussion about what
characteristics a good file system should have has recently blossomed in
comp.arch, and rather than try to divert it here I'll just point to it
there for anyone who'd like to read or join it:

The discussion can be found in the more recent responses to "Trying to
design low level hard disk manipulation program" and in
"Case-insensitivity considered harmful" (I also just made a
less-than-appreciative comment about the general state of file system
development in "Disk transfers").

- bill