I'm not sure why Visual Studio 2012 can't deal with the upgrade properly, but I've found the workaround. Edit your .CSPROJ file(s) and look for this line:
<FileUpgradeFlags>0</FileUpgradeFlags>
Remove the contents of that node so it's empty:
<FileUpgradeFlags></FileUpgradeFlags>
Visual Studio will no longer attempt to upgrade the projects every time. For the record, I've only ever seen this behavior when upgrading a SharePoint 2010 project using VS 2012. Other types of projects seem to be okay.