You can keep it on a helper on a separate package, so people can choose to use it or not.
Hmm yep, like the BGRAWebP unit would not be included be default.
I will rather to do a reader/writer, so that if you declare the unit, then you can load/save it using usual functions.
That can help regarding linking to the library, but that would solve the compiling thing.
I think we need to explicitely load the library with LoadLibrary to avoid linking problems at compile time.
In fact that would solve the dependency issue as well, because we can check if the library loads correctly.