> Library is copyable. Only the reference passed to unloadLib is nullified.

These errors can't be easily detected in findFunc/findVar because _another_ thread might keep the library in memory, i.e. the handle is valid but in _this_ thread the library is already destructed.
If you want to prevent these errors you have to add a layer of resource management, either Unique or RefCounted. I feel like this is slightly out of scope for this construct.