I'm surprised curlx_strcopy doesn't return success. Sure you could check if dest[0] != '/0' if you care to, but that's not only clumsy to write but also error prone, and so checking for success is not encouraged.
DEBUGASSERT(slen < dsize);
it means it succeeded. Although some compilers will remove the assertions in release builds.I would have preferred an explicit error code though.
But regardless of whether the assert is compiled or not, its presence strongly signals that "in a C program strcpy should only be used when we have full control of both" is true for this new function as well.
So now it silently fails and sets dest to an empty string without even partially copying anything!?