What I have observed is if you are little careful while promoting, repromoting, demoting or renaming the columns, this issue doesn't come. What you need to do is while promoting any column you have to select to create a new column in the library. After publishing if for some reason you are repromoting the form, by default infopath selects to use existing site column of type Microsoft infopath form. There you have to again select to create a new column in the library. If you are demoting any column, the column from the library can not be deleted and it will continue with null value for later list items. I am not sure if this approach will work for all situations but it worked for me. Again if you have to get rid of duplicate columns, you may have to delete the list and recreate it.
Thanks,
Rahul Babar
================================================
ASP.NET, C#, Sharepoint 2007/2010/2013/SP Online, Infopath 2007/2010/2013 Admin/Developer