I suppose its hard to seperate OS issues from file system issues.
Windows - Hides extensions and system files in its GUI, unless you alter the behavior. The filesystem (Fat32, NTFS) appears to choke on names greater than 8.3 and does something to get around this.
This hasn't been an issue for years.
IIRC, using win98 you could drop into the command line and do a dir. The longer file names would show up as myfile~1.txt and other variants all containing ~# before an extension.
That was a backward compatibility hack for old software that didn't understand that filenames could now have reasonable names.
Linux - Seems to hide all files and dirs starting with a . They also have this weirdness about knowing what you want to execute, unless you alter the shell?, as you have to preface your executable with ./programname to run it. Of course you can see the hidden ones using a switch with ls.
Blah^3 has explained the security issue around not having the current directory in the path. The "hide stuff starting with dot" is at least a standard unix convention. It is similar to the file extension issue in that a naming convention is used for more than just the name. Rather that needing to learn some new obscure way to make files hidden, this 'easy' workaround is employed.
Mac - Doesn't allow me to name files with the same name when using a different case. Seems a little weird, since Fred.text and fred.text are different in Unix land. The GUI presents programs as a single file, but there is some sort of 'packaging' going on. TextPad for example is really a directory name, with other stuff in it. Nested inside the directory is the actual binary. I'm sure there is a name for it, but I'm too much the newbie to the OS to know right now.
Mac OS like Windows and AmigaOS uses a case preseerving but case-insensitive file system. I prefer it to case sensitive file systems, since I think it is more confusing than helpful to have filenames that differ only by case. This can cause problems though.
The 'package' concept is where the Mac is brilliantly superior to other OS's. It is only the Mac GUI - the Finder - that by convention doesn't recurse into package contents unless explicitly told to (context menu 'Show package contents'). The package concept makes application installation a trivial drag and drop application, and complex documents containing many files can be treated as a single entity. In the old days there was a special attribute set on the folder to say "this is a package", now OS X can just recognize a specific directory layout as being a 'package', so once again they use a simple technique that doesn't require any new interface to manipulate special bits... simply recognizing the layout makes packages easier to deal with most of the time.
BeOS - Had a journaled filesystem capable of handling 64 Terabytes IIRC. How cool was that?
It's cool, but Windows and Mac also use journaled filesystems by default, and most modern Linux systems are the same. I'm not sure where the limits are in terms of partition size.
Amiga - Had a 'pairing' scheme, where anything you wanted to run from the GUI (pre OS2.x) had to have an associated icon file. If you had myprogram, then you needed to have myprogram.icon. The icon files contained image data but later contained meta data as well. You could run the executable from the command line, whether it was a GUI app or not.
Old windows 3.1 stuff used a similar concept that is still supported today for legacy stuff. I think it was .pif files.
Blah^3 wrote that the Mac can have files with almost any character in the name. The Amiga also had this ability. The backwards DOS/Windows stuff kept it away from most users still to this day. It's been 20 years and we still have the artificial limitation on what characters are allowed in filenames in the worlds most popular OS. Sad. I'm not sure if Linux can handle anything like it either.
There is no good reason to restrict what characters are allowed in a filename. Simple escaping rules can allow path separator characters and the like to not hold special meaning. If this were implemented from scratch today, perhaps the rules for escaping characters in URLs would be the way to go.
Don't get me started on the arcane and ludicrous concept of "drive letters" that Windos is still forcing on users decades after better systems were introduced by Atari, Amiga, and Mac, not to mention the single rooted filesystem of the unix world. Microsoft is directly responsible for keeping general computing in the dark ages. All because they want to be backwards compatible with DOS - the boat anchor that brings down the whole OS.
I much prefer the way Mac moves forward and knows when it is time to simply not be backward compatible with something that puts such severe limits on progress.