Short question: What were the downsides to use Plan9 or Inferno as the fundament of a distro insted of Linux? Of course with Linux programms where it would be necessary.
Plan 9 is a complete OS, so things like coreutils are not really necessary (tho plan 9 utilities are not strictly POSIX compatible). The killer app would be a good enough web browser, if you're talking about a workstation OS. Other than that it already has a vast set of utilities, including an extensible text editor (acme), mail, etc. for development work .
It doesn't have glibc or gcc support so the only compiler you have is the non-standard ansc C compiler in Plan 9 (and several efforts to introduce other languages have popped up over time but to my knowledge never took off and required a lot of novel code to make work). This means almost all current software cannot be compiled on Plan9.
So the Linux programs that would be necessary are glibc and gcc, and if you had those you would be able to compile most command line software except for anything that used anything but the standard C library (which would now have been ported to Plan9). Of course, anything accessing most files in a Linux filesystem would break, since Plan9 uses a different layout, and anything that called Linux system calls directly would also break, even UNIX ones, because Plan9 is not Unix.
Going up the stack just makes things worse. You couldn't use any GUI program because you don't have GLX or EGL support for render targets. You don't have OpenGL, so anything written against that can't work.
So you are basically restricted to command line programs that are isolated and make no attempt to use kernel features or arbitrary files in the file system. Even simple things you don't innately think of, like XDG directories, aren't available in a Plan9 environment because its not an X system, so software that uses those won't be able to find the standard config or local cache directories (they will just pull blank envrionment variables and at best write to the current working directory). If you set those variables up manually, you could run stateful software... that didn't use direct Unix system calls.
On the bright side, you could probably get some programming language runtimes to work. Depends on if, say, your Python interpreter uses platform specific system calls or only depends on libc. CPython at least absolutely does have platform specific code paths that would break on Plan9 (because they would assume Unix defaults in the absence of Darwin or NT) but I'm not sure about, say, Pypy. Those runtimes would still be constrained to text only, since the Plan9 graphics layer isn't related to anything in Linux.
Plan9 isn't a kernel, its an operating system in the RMS GNU/Linux sense. Linux distros really depend more in general software on the GNU part than the Linux part, which is both why projects like Debian can drop in Hurd and not have billions of man hours of porting work to do to make it happen and why traditional desktop Linux applications aren't all over Android.