I happened to create two zero-length periods two different ways to test for equality like so:
var period1 = Period.Zero;
var period2 = PeriodPattern.Roundtrip.Parse("P0D").Value;
Doing period1 == period2 compiles just fine. However, the result was not what I expected. This returns false, not true. On the other hand, doing period1.Equals(period2) does return the expected result of true.