And Sanji has disdain for being Vinsmoke, only difference is that Shanks didn't have to be raised by his family or abused. If he had his self hate would be equal to or worse than Sanji's just by the fact he already hated himself for it.
Then oda should have focused on this.
Oda should have stated that Sanji can't use coc because he is not accepting himself which is VINSMOKE.
He literally asked zoro to kill him in wano if his personality changes to that of his brothers whom were VINSMOKE
HE LITERALLY TOLD LAW HE HATES THE FACT THAT THE INVISIBILITY THAT HE ALWAYS WANTED WAS OBTAINED THROUGH VINSMOKE TECHNOLOGY.
HE DESTROYED HIS OWN RAID SUIT BECAUSE HE WAS NOT ACCEPTING OF HIS VINSMOKE LINEAGE AND THEIR TECH
The same sanji interpreted him loving himself as ridding himself of everything vinsmoke.
Oda should have focused on sanji coming to terms with this and understand that just because he is a vinsmoke doesn't mean he is like the rest of his family. Focus on the sacrifice of his mother. Focus on the fact that his mom's.love is why he can't attack women.
Have sanji come to terms with this and accept himself and then get coc