The signature is in line with all the other similar functions: memcpy(), strcpy() etc. I always thought this was done to enable one to chain calls to such functions, and to otherwise use such calls in expressions.
That said, I've never come across a real-world situation where I would feel compelled to use the return value in such a manner.