> [leave] programmer kindergarten [and use] a more sane string API that tracks sizes.
And obviously lose the use of any string whatsoever in a place where you cannot allocate memory.
And lose the capability to use multi-lingual constant strings because the size of string memory can never be bigger than the total size of your code, I mean:
const char *error_mlstr = "error\0erreur\0erro\0Ошибка\0";
But the main problem anyway is that strlcpy() do not even try to behave with UTF8, cutting the string in the middle of a char may create bigger security problems.