But then the server may still decide that an empty segment is so meaningless that it will refuse it.
In fact, it would not be a smart move to just treat double slashes the same as single ones, because of relative URLs: a ".." segment only removes one slash, so the hierarchy levels would get messed up. thttpd is doing the smart thing here.
As one of my teachers at university would say: the empty segment is also a segment.
The server can of course interpret the path as it wants, but it should allow an application running under the server to give 'foo//bar' a meaning if that application wants to, IMO.
True. I was writing about the case when the URL simply mapped to a file system location. Applications should be able to apply their own interpretation.