First of all we would like to pay your attention to the fact that SWF format is vector. And GIF is a bitmapped format. Of course GIF is always larger than SWF.
Also every next frame of the SWF file is created by modifying the previous one, while in GIF (animated one) every frame is a separate image. That is why the images make the GIF file size increase significantly.