In other words, if we add a month, then subtract a month, we might not get back to the date we started from. For example:
SELECT DATEADD(MONTH, 1, DATEADD(MONTH, -1, '20100330')) ,
DATEADD(MONTH, -1, DATEADD(MONTH, 1, '20100330'))
2010-03-28 00:00:00.000
2010-03-30 00:00:00.000
If our code assumes otherwise, it has a bug.