In fact, the 123-yyy.zzz domain is not valid either according to the RFC (subdomain can't start with a digit), but since we already allow it, should we not allow 123_yyy.zzz to be recognized as a Host? Then why not recognize aaa@123_yyy.zzz as an email address?
Another option is to prohibit underscore in recognized host names, but this has more breakage potential IMO.