The problem you face here is, that you draw one big polygon by going around your spiral with the coordinates. The solution is as simple as it sounds: Don't do that.
So how can you not go around? Let's start by looking from both ends on your list. Here I import and rescale your data and then I draw the first 3 points from the start in blue and the first 3 points from the end in red
Import["http://pastebin.com/raw.php?i=0ux8ep4W", "Package"];
data = Rescale[polydat];
Graphics[{PointSize[.02], Blue, Point[data[[1 ;; 3]]], Red,
Point[Take[data, -3]]}, PlotRange -> {{0.1, .14}, {0.05, .1}},
Frame -> True]

Now one possible solution should jump directly into your eye. Instead of drawing one big polygon around, we draw many which look like rectangles. The advantage of this is that when in a later stage a polygon is drawn over some other it just works because they are not the same. It's like drawing two things over another. Let's try this
getCoord[i_] :=
With[{p1 = Take[data, {i, i + 1}], p2 = Take[data, {-i - 1, -i}]},
Flatten[{p1, p2}, 1]]
Manipulate[
Graphics[{Red, Opacity[.2], EdgeForm[Black],
Polygon[getCoord /@ Range[i]]},
PlotRange -> {{0, .21}, {0, .21}}],
{i, 1, 200, 1}]

Looks like we nailed it. The work is done inside getCoord which takes an index i and extracts coordinates from your data and orders them in a way you can directly use it with Polygon.
Final solution is then
Graphics[{Red, EdgeForm[Red],
Polygon[getCoord /@ Range[Length[data]/2-1]]}]
et voila

Building a GraphicsComplex
Building a GraphicsComplex where the coordinates are only used one time and in the Polygon primitive you work with indices is not hard. Just create a table of integers the same way you take coordinates. Two from the front and two from the back and you are done..
With[{l = Length[data]},
Graphics[{Red, EdgeForm[Red], GraphicsComplex[data,
Polygon[
Table[{i, i + 1, Mod[-i - 1, l] + 1, Mod[-i, l] + 1},{i,l/2 - 1}]]]}]
]
GraphicsComplex[], so you don't have to keep repeating coordinates for eachPolygon[]... – J. M.'s missing motivation Oct 04 '12 at 02:35GraphicsComplexversion differs as expected only by 13 Bytes. You introduce a whole new integer-list only to remove, that most points are used twice.. Thats not worth the effort for such an application. – halirutan Oct 04 '12 at 10:53GraphicsComplex[]makes for sizable reductions, but I guess this is not one of those cases. – J. M.'s missing motivation Oct 04 '12 at 11:30