This is by design, and it's standard behavior. Quoting the POSIX standard:
Unless chown is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regular file shall be cleared upon successful completion; the set-user-ID and set-group-ID bits of other file types may be cleared.
(s
is setuid (or setgid in the group column), not sticky, by the way.)
This behavior follows that of the underlying system call (except that on some systems, the setxid bits are only cleared for executable files).
The reason for removing the setuid bit is that changing the owner also changes which user will be the process's effective user ID. In particular, on systems where a user can give away a file, cp /bin/sh foo; chmod u+s foo; chown joe foo
would create a setuid executable belonging to joe, a giant security hole.