Not sure why OSX doesn't recognise that an app has been uninstall or replaced but it may be down to how well behaved the actual app is. Rebuild the LaunchServices database to fix it. I don't do it very regularly as I don't really use my Mac but lsregister command fixes it.