You assume utility of getting neither is 0 both before and after the transformation. You need to transform that utility too, eg from 0 to 4.
Your example has 3 states: vanilla, chocolate, and neither.
But you only explicitly assigned utilities to 2 of them, although you implicitly assigned the state of 'neither' a utility of 0 initially. Then when you applied the transformation to vanilla and chocolate you didn't apply it to the 'neither' state, which altered preferences for gambles over both transformed and untransformed states.
E.g. if we initially assigned u(neither)=0 then after the transformation we have u(neither)=4, u(vanilla)=7, u(chocolate)=12. Then an action with a 50% chance of neither and 50% chance of chocolate has expected utility 8, while the 100% chance of vanilla has expected utility 7.
What they said about the U(-)=0 problem. But the way I think about it resolves more contradictions, more easily, IMO.
Utility functions are equivalent under positive affine transforms. This is a huge clue that thinking about utility will lead to major intuition problems. Instead, use quantities that are not ambiguous. You're gonna have to get rid of the a and b in au(x)+b, so you're going to need three states of the world, always, before you're allowed to use intuition. You can combine them in different ways, but I like
r = [U(x)-U(z)] / [U(y)-U(z)]
Mere differences in utility are not pinned down, because of scale. Ratios of differences in utility are great, though. It's 2.67x as good to go from nothing to chocolate as to go from nothing to vanilla. 0 and 3 and 8, or 4 and 7 and 12, those are just there for computational convenience in some circumstances and can be ignored.
You forgot to specify the utility of the other outcome when your 50% chance of chocolate fails. Assuming the outcome ("failed attempt at chocolate") has a u utility of 0, it will then have a u' utility that is nonzero, which you failed to include in your second calculation.
Nice try, buster ;)
BTW: Up voted, I would strongly like to see more of this type of content.
In the original VNM theorem, lotteries are taken over global states of the world, meaning that preferences are expressed over mutually exclusive states of the world.
Assuming there's no other states of the world besides vanilla (V) and chocolate (C), your original lotteries are:
0.5*u(V) + 0.5u(c) = 1.5 + 4 = 5.4
against
1u(v) + 0u(c) = 3
so your preference goes to the first lottery. In the second set of lotteries you have
0.5*u(V) + 0.5u(c) = 3.5 + 6 = 9.4
against
1u(v) + 0u(c) = 7
You continue to prefer the first lottery.
Here's a puzzle based on something I used to be confused about:
It is known that utility functions are equivalent (i.e. produce the same preferences over actions) up to a positive affine transformation: u'(x) = au(x) + b where a is positive.
Suppose I have u(vanilla) = 3, u(chocolate) = 8. I prefer an action that yields a 50% chance of chocolate over an action that yields a 100% chance of vanilla, because 0.5(8) > 1.0(3).
Under the positive affine transformation a = 1, b = 4; we get that u'(vanilla) = 7 and u'(chocolate) = 12. Therefore I now prefer the action that yields a 100% chance of vanilla, because 1.0(7) > 0.5(12).
How to resolve the contradiction?