The middle end support for strlcpy consists of transforming calls to __strlcpy_chk to the function itself if the buffer overflow checking overhead can be avoided. This change extends the support to also optimize a subset of calls to the function itself, similar to snprintf.
The strlcpy and strlcat functions have both recently been added to the next revision of POSIX (see issue 986). If/when this proposed enhancement is accepted I'll look into adding minimal support for strlcat as well.
strlcpy accesses the second argument no matter what the size is (so it can compute the return value).