Oh wow, I had no idea about the unintended consequences of the DMG + App bundle installation mechanism.
Maybe the issue could be ameliorated with a self-updater built-in into the app? Not a separate daemon, but something that by running inside the app, would be able to know what's the path of the old version that should be thrown away.