Perhaps I have the syntax wrong, however, the following attempts to copy all files in SOURCE every time:
1. mkdir LATEST_CHANGES SOURCE BACKUP_STAGING
2. touch SOURCE/filea SOURCE/fileb SOURCE/filec
3. rsync -avi SOURCE/* LATEST_CHANGES
(all files copied, as expected)
4. touch SOURCE/filed SOURCE/filee
5. rsync -avin SOURCE/* BACKUP_STAGING --compare-dest=LATEST_CHANGES
always reports the three files that are in LATEST_CHANGES:
building file list ... done
>f+++++++ filea
>f+++++++ fileb
>f+++++++ filec
>f+++++++ filed
>f+++++++ filee
( diff SOURCE LATEST_CHANGES yields: )
Only in SOURCE: filed
Only in SOURCE: filee
(implying that files a,b, and c match.)
SO - I'm expecting that filed and filee be copied to BACKUP_STAGING, but not files a,b, and c.
ultimately, I plan to use this as follows:
rsync -avi SOURCE/* BACKUP_STAGING --compare-dest=LATEST_CHANGES --compare-dest=BOM_REPO
Is this a bug? Or am I just using it the wrong way?

You're using it the wrong way. The man page description of --compare-dest=DIR says, "If DIR is a relative path, it is relative to the destination directory." So your option should be --compare-dest=../LATEST_CHANGES .