That is one question I have not been able to figure out an answer to myself. Even removing all instances of SetDirty calls and adding extensive Debug.Logs, I saw no clear indication of what was causing the scene to get marked as edited.
Even creating a scene, adding a UIPanel with an invisible widget under it, then disabling both components, saving the scene, deselecting the object, and alt-tabbing twice marks the scene as edited.