I think the difference here is that anime makes everyone look older than they are. Pudding and Sanji look the same age and pudding acts like an adult, so people see it and don't think it's weird. If this was real life and a 21 year old man was dating a 16 year old who actually looked and acted her age, I doubt anyone here would defend it.