in the cp manpage, it lists the -f/--force option as: if an existing destination file cannot be opened, remove it and try again
for the --remove-destination option it says: remove each existing destination file before attempting to open it (contrast with --force)
So, the former first checks if it can be opened, if not, it deletes in anyway, while the latter just bypasses that step. I combined each with the -i option, and in both cases, it indicates what the permissions of the files are if it's write-protected.
The latter would seem to be more efficient, especially if recursively copying/overwriting large directories, but why maintain both options? What's the advantage of checking something it's going to over-ride anyway?