The file manager would read the resource fork for a file and would launch the appropriate application when you opened a file. So while there were defaults for all the file types Mac OS would keep track of the application that created a particular file and things of that nature. That way the system could intuitively deal with applications on a per file basis.
I think Windows has some sort of mechanism for managing per-file stuff, but I don't know what it is.
And, of course, nothing I've noticed in Linux addresses this.