When using --copy-links, rsync should check wether the referent of the symlink
and the destination file match in length and time and possibly exclude the
file; I suspect that at the moment the symlink itself is examined which is of
course not the same size as the destination file, causing the file not to be
excluded even when it should have been.
Rsync uses a normal stat() call on files when --copy-links is specified (rather
than lstat()), so of course it is dealing with the length and time information
from the referent.
If you believe that something is not working right, please add a comment with
more specific information. Also, consider using the mailing list to help
diagnose the problem.