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.