I had discovered a little bug revolving around the
Sitecore.Data.Fields.Field.ContainsStandardValue property in Sitecore (at least 18.104.22.168221 through current). You cannot trust the value returned by
Field.ContainsStandardValue if you have made any of the following calls:
A way to get around the bug would be to immediately call
field.GetValue(true, false) if you have made any of the previously listed calls. For example:
// does the field have a value?
bool hasValue = field.HasValue;
// fix bug 368493.
This bug has been acknowledged by Sitecore and logged as #368493.