Currently, on systems that support lchmod and lutimes, rsync uses them only when it needs to manipulate a symlink. I think it should use them everywhere in place of chmod and utimes to avoid surprises or vulnerabilities should a destination file of another type be suddenly replaced by a symlink.
3.1.0 will always use lchmod() and lutimes() (when available), as you suggest.