The fact that Claim.target_equals() does WbTime comparison based only on year is counter-intuitive to me.
I would suggest making this take precision target.precision into account and demanding that target.precision < pywikibot.WbTime.PRECISION['year'] but would like to check what the original choice for comparing on year was.
Alternatively (or additionally) having a built in comparison where both target and value are WbTime would be useful. The method I use myself compares year, month, day etc. based on the relevant precision (so that 2010-01-01 and 2010-00-00 are equal but only if precision is year on both).