First of all, checking and branching on the return value of strlcpy is easier than other interfaces. The return value gives you all the information you need to know: specifically, whether truncation occurred and how much you need to grow your buffer. Other interfaces require more logic to get at this information. In other words, strlcpy is a more elegant abstraction.
But more importantly, the idea that you _need_ to check the return value is wrong. If truncation occurs, it's likely because there's input that is unexpected by the developer. This may because the developer was lazy, or maybe because there's an some implicit contract or protocol.
Either way, the input is garbage. Garbage in is garbage out. Now, you can try to catch that garbage, but why? If someone gives me a domain length of 300 characters, should I bail or just silently truncate? It depends. you could bail, but then you may have to add a new error path unlikely to be tested much, if ever. Sometimes it's better to just handle garbage as sanely as possible, and that means just going through the motions.
More bugs occur in "exception" blocks than perhaps anywhere else. NTP bug last month? Exception. Memory errors. Signals. Etc. I mean, come on people!
So, sometimes the sanest thing to do with garbage is to keep trucking along, and let the user reap what he has sown, at least as long as the garbage output is direct function of the garbage input. Thus, strlcpy has a third useful mode: truncation.
No other alternative to strlcpy does all three of these things. And no other alternative or set of alternatives is as simple to use. Simple code is better code, _always_.
This debate over strlcpy is plain stupid. Of course there are always better ways to do address any particular scenario. But the job of a C library isn't to give you the perfect tool for each and every job. It's to provide a small collection of tools with higher average utility. This reductive obsession with telling people to resort to things like memcpy, or to use dynamic string libraries, is insane. It's like taking away condoms and telling people to get married before they have sex. It ain't gonna happen. The world isn't that simple.