Actually there is point. I will give you three examples where this scenarios is very useful.
Lets say that we have many places in which we are calling distance rest api. Maybe hundred of pages or even more. And now, we have the need to insert custom header into every request we send. Hm... If we had our wrapper, called from many places, and then one fetch from our wrapper, then we can simply add new header inside our wrapper and all calls will contain new header.
We refactored our code, and now we have our new and shiny wrapper around fetch. We inserted our custom header and everything works fine. But after some time, we found that lets say axios is much better library then using fetch. Fortunately ( a ha! ) we wrapped fetch and now have just single place to refactor. If we didn't, we would need to go over hundered or even more places to change.... Now, we have possibility to not even just change it, but implement something like "Strategy pattern", where we can use one or another (fetch or axios), which we can dynamically switch.
Because we wrap these implementations, we control our interface we use further in our code. If some wrapped third library change, for eg. its property name, we will fix that only in our wrapper. The rest of our application is using our interface which stays unchanged.
Quick recap, when you wrap it, you now have only one place to change, if need for that change appear, also, you can switch multiple implementations in the future. Its a good practice, especially when working with 3rd party libs, to wrap them or made adapters.
Hope this helps.