V8 was the first of a series of refinements that unified things nicely, allowing programs to interact more smoothly. Nothing too dramatic, really: things like a shell that could export its environment, including functions; tweaks to how $PATH worked so we could have binaries with names like n/m1 n/m2 etc. to connect to machines m1 and m2; a push for output from programs that worked as input to the same programs (a huge deal for the shell); and so on. Lots of cleanups (db really worked, and worked well; stuff like that). Not to mention clean networking and graphics APIs that showed how easy it was to incorporate them into Unix.
What is a socket for, anyway? Why do you need them when you have file descriptors? (Rhetorical question, because the answer is, you don't. But the earliest sockets didn't even implement read and write!)
And so on.
But we did Plan 9 after v10, so it's clear we didn't think it was perfect, yet.