My first thought was, this will be great for fixing the annoying gaps created by bad STL exports.
A weakness of this method is that it globally changes the entire mesh! That's bad. You might lose important detail elsewhere. I wonder if those refinement and unrefinement steps are really necessary or not?