Specifically dependencies that have very specific implementations.
For one example, the Hangfire enqueing library. This has very specific implementations to enqueue background jobs to be executed asynchronously.
I created a wrapper around this dependency, but it ended up being tightly coupled to the dependency itself. Then, when I use my adapter in other assemblies, they all end up needing a reference to Hangfire anyway.
Why would I want to wrap the Hangfire dependency (or similar dependency) in an adapter?
If I ever switch to a different enqueueing system, all of the code will go "red" where I need to switch it anyway. I can see an argument to be made for unit testing and/or late binding, but is there any other reason?