We talked on IRC about this a bit, but basically if effuse somehow kept track of what it created symlinks of (maybe in a yaml dotfile or something), --clean could read that file, and delete the symlinks mentioned in it.
Then, if you wanted to have your git repo instantly update your dotfiles (including deleting old ones), you could shove effuse --clean && effuse in .git/hooks/post-merge.
effuse --clean && effuse
You mentioned that this would complicate things a bit, but it's just a nicetohave.
Going to add for todo purposes: