How to draw a polygon with hue color like this one (Koch snowflake)?
With a hue disk as you suggested (but slightly tweaked to get the colours in the right spot):
hueDisk = With[{sectors = 360}, angle = 2 Pi/sectors;
Table[{Hue[1 - i/sectors], EdgeForm[{Thick, Hue[1 - i/sectors]}],
Disk[{0, 0}, 0.6, {\[Pi]/2 + i angle, \[Pi]/2 + (i + 1) angle}]}, {i, 0, sectors - 1}]];
Then we can use the FilledCurve technique to draw the snowflake over the top:
Graphics[{hueDisk,
FaceForm[White], EdgeForm[Black],
FilledCurve[{
{Line[{ImageScaled[{-2, -2}], ImageScaled[{2, -2}],
ImageScaled[{2, 2}], ImageScaled[{-2, 2}]}]},
{Line@With[{m = Mean@pts}, # - m & /@ pts]}}]}]
One way is to use your code for the snowflake, and turn it into an image. Then use the code for the colored circle and turn it into an image. Then multiply:
f[{a : {x1_, y1_}, b : {x2_, y2_}}] :=
Partition[{a, (2 a + b)/3, {3 (x1 + x2) + \[Sqrt]3 (y1 - y2), \[Sqrt]3 (x2 - x1) +
3 (y1 + y2)}/6, (a + 2 b)/3, b}, 2, 1];
pts = Join @@ Nest[Join @@ f /@ # &, .5
{{{0, 0}, {2, 0}}, {{2, 0}, {1, -\[Sqrt]3}}, {{1, -\[Sqrt]3}, {0, 0}}}, 5];
flake = ColorNegate[Image[Graphics[Polygon@pts], ImageSize -> 400]];
circle = Image[With[{sectors = 360}, angle = 2 Pi/sectors;
Graphics[Table[{Hue[i/sectors], EdgeForm[{Thick, Hue[i/sectors]}],
Disk[{0, 0}, 1, {i angle, (i + 1) angle}]}, {i, 0, sectors - 1}]]], ImageSize -> 400];
ColorNegate[ImageMultiply[flake, circle]]
Clear["`*"]
f[{a_,b_}]:={3a,2a+b,3/2(a+b)+√3/2(b-a).RotationMatrix[-Pi/2],a+2b,3b}/3;
pts=Nest[Join@@f/@Partition[#,2,1]&,.5{{0,0},{2,0},{1,-√3},{0,0}},3];
img=Colorize[Image@Rescale@Table[ArcTan[x,y+1.*^-6],{x,-200,200},{y,-200,200}],ColorFunction->Hue];
ImageAdd[img,Graphics[Polygon@pts]]
pts = # - Mean@pts & /@ pts;
Graphics[{Texture@img,Polygon[pts,VertexTextureCoordinates->Rescale@pts]}]