Look at Linux history and you'll see feature sets applications depend on changing. Programs written to POSIX and keeping out of system details haven't needed much maintenance.
Those sacrificing portability and delving too deep, are those pesky things that keep breaking.
What's needed is a kernel/user space cooperation to develop good useful APIs, and make them easy to use for applications that can be later emulated on the BSDs with a different underlying implementation.
If it proves very difficult to write another implementation, it probably suggests that the API is a crock of **** and won't stand the test of time, and the ever onward march of progress. But be an ossified handicap to future progress. Good abstractions are things that can be built upon.