True, but that tends to require a bunch of extra code, and adds complexity since now you have two different paths to test. Which is manageable, but definitely cuts against the goal of keeping the project “light”. (Of course, it depends on the feature and the language/environment you’re using. Sometimes the fallback is trivial, or can be neatly encapsulated in a third-party polyfill you never have to look at.)
But why have fallbacks for unsupported OSes, which are hard to even test (as the OSes themselves probably shouldn’t be attached to the internet due to possible security issues).