Some history from the man page:

The strlcpy() and strlcat() functions first appeared in OpenBSD 2.4, and FreeBSD 3.3.

OpenBSD 2.4 was released in December, 1998.

Previous attempts to add it to glibc didn’t have support:

This is horribly inefficient BSD crap. Using these function only
leads to other errors. Correct string handling means that you always
know how long your strings are and therefore you can you memcpy
(instead of strcpy).

Beside, those who are using strcat or variants deserved to be punished.

(Of course, it was Ulrich Drepper).

Since then, software ported from BSD to Linux usually used libbsd to get access to these trivial functions.

The commit in glibc says:

These functions are about to be added to POSIX, under Austin Group
issue 986.

Here it is:

Back in 1998, OpenBSD 2.4 added the functions strlcpy() and strlcat(). These functions eventually made it into a whole bunch of other operating systems. By now, at least OpenBSD, FreeBSD, NetBSD, Solaris, Mac OS X, and QNX provide these functions. Implementations are also present in popular Open Source projects like SDL, GLib, ffmpeg and rsync. The Linux kernel also uses them internally.

These functions have already been in use for the last 17 years and people seem to like them, which is why I'd like to propose that we add them in the next version of POSIX.