This sounds good in theory. But in my experience, WorthIt-Bob doesn't usually argue rationally.
He acknowledges the existence of rational arguments of not fulfilling the wish in question (be it eating a cake, delaying work, whatever). He just doesn't care about these rational arguments.
An internal dialogue, as I've had it (slightly paraphrased, of course): NWI-Bob feels the wish to delay work arise. Thought: I acknowledge that delaying work right now would be more fun than not delaying work, but the deadline of the project I'm working on is approaching and if I delay my work now, I will have problems meeting this deadline. Therefor, I should work now and do some leisure activity later on. WI-Bob: Yeah, these arguments are pretty good, and I know it will be bad. However, that lies in the future, and I want to have fun right now. NWI-Bob: That's not a very smart approach. Just continuing to work for 2 more hours will make me happy, and you will achieve happiness in the free time afterwards. WI-Bob: Yes, that sure is an intelligent idea, but I still want to have fun right now.
The dialogue continues in the same vein. Most of the time, it ends with NWI-Bob making a last argument, and WI-Bob not responding because he just doesn't have any arguments besides "I want that right now." However, despite his lack of response, his will often perseveres.
Exactly. A prerequisite skill here is sufficient introspection to surface the real motivations for a behavior or impulse (where "real" means the motivations that are cruxy, the ones that change based on the circumstances), instead of your confabulations or your self-model.
tl:dr; Dynamic consistency is a better term for "willpower" because its meaning is robust to changes in how we think constistent behavior actually manages to happen. One can boost consistency by fostering interactions between mutually inconsistent sub-agents to help them better empathize with each other.
Despite the common use of the term, I don't think of my "willpower" as an expendable resource, and mostly it just doesn't feel like one. Let's imagine Bob, who is somewhat overweight, likes to eat cake, and wants to lose weight to be more generically attractive and healthy. Bob often plans not to eat cake, but changes his mind, and then regrets it, and then decides he should indulge himself sometimes, and then decides that's just an excuse-meme, etc. Economists and veteran LessWrong readers know this oscillation between value systems is called dynamic inconsistency (q.v. Wikipedia). We can think of Bob as oscillating between being two different idealized agents living in the same body: a WorthIt agent, and a NotWorthIt agent.
The feeling of NotWorthIt-Bob's (in)ability to control WorthIt-Bob is likely to be called "(lack of) willpower", at least by NotWorthIt-Bob, and maybe even by WorthIt-Bob. But I find the framing and langauge of "willpower" fairly unhelpful. Instead, I think NotWorthIt-Bob and WorthIt-Bob just aren't communicating well enough. They try to ignore each other's relevance, but if they could both be present at the same time and actually talk about it, like two people in a healthy relationship, maybe they'd figure something out. I'm talking about self-empathy here, which is opposite to self-sympathy: relating to emotions of yours that you are not immediately feeling. Haven't you noticed you're better at convincing people to change their minds when you actually empathize with their position during the conversation? The same applies to convincing yourself.
Don't ask "Do I have willpower?", but "Am I a dynamically consistent team?"
The task of keeping your various mental impulses working together coherently is called executive functioning. To deal with an "always eat cake" impulse, some may be lucky enough to win by simply reciting "cake isn't really that tasty anyway". A more potent technique is to practice visualizing the cake making you instantaneously grotesque and extremely ill, creating a psychological flinch-away reflex — a behavioral trigger — which will be activated on the sight of cake and intervene on the usual behavior to eat it. But such behavioral triggers can easily fail if they aren't backed up by an agreement between your WorthIt and NotWorthIt sub-agents: if you end up smelling the cake, or trying "just one bite" to be "polite" at your friend's birthday, it can make you all-of-a-sudden-remember how tasty the cake is, and destroy the trigger.
To really be prepared, Bob needs to vaccinate himself against extenuating circumstances. He needs to admit to himself that cake really is delicious, and decide whether it's worth eating without downplaying how very delicious it is. He needs to sit down with the cake, stare at it, smell it, taste three crumbs of it, and then toss it. (If possible, he should give it away. But note that, despite parentally-entrained guilt about food waste, Bob hurting himself with the cake won't help anyone else help themselves with it: starving person eats cake > no one eats cake > Bob eats cake.)
This admission corresponds to having a meeting between WorthIt-Bob and NotWorthIt-Bob: having both sets of emotions present and salient simultaneously allows them to reach a balance decisively. Maybe NotWorthIt-Bob will decide that eating exactly one slice of cake-or-equivalent tasty food every two weeks really is worth it, and keep a careful log to ensure this happens. Maybe WorthIt-Bob will approve of the cake-is-poison meditation techniques and actually change his mind. Maybe Bob will become one person who consistently values his health and appearance over spurious taste sensations.
Or maybe not. But it sure works for me.