If you provide a non-opinionated base platform, users will add opinions, and those will not all be compatible with each other.
Not adding GC or not defining how exceptions work could easily lead to a situation where you want to use a couple of third-party libraries, but discover they, combined, use three different garbage-collecting memory allocators and two different ways to handle exceptions, even where function overloading works differently in different libraries.
As an example, look at string implementations in various C programs. Even if they if they boil down to a pair (int, malloced memory), you still might not be able to pass one obtained from a function in one library to a function in another library.
Sounds nice in theory, but I suppose that if Linux or OSX or whatever OS you use forced developers to use one style of GC, a lot of people would be very disappointed.
Stacking abstractions, like how computer architecture used to work in the old days.