An assy seems to keep the timestamps of it's components in the file to compare when the assy is opened. If these don't match then Solidworks will give you a warning. What is this timestamp? Using a document class one can get the Last update time stamp:
dmDoc.GetLastUpdateTimeStamp()
Is this timestamp the same as the timestamp that Solidworks saves in the assy?
SolidworksApi/macros