This is something students often forget when comparing radii: shells are not simply additive.
If you move along eight elements to go from lithium to sodium, you are not only filling the second shell and putting one electron into the third, you are also adding a proton to the nucleus with every additional electron. The larger the nuclear charge is, the greater the electrostatic potential the electrons experience. And the greater the potential the stronger the force that draws them towards the nucleus, thus the more compact an orbital will become. Thus, while each new period will enlargen the atomic radius each added proton will reduce it. Therefore, the atoms do not become infinitely larger in size — although a sodium atom will always be larger than an electronically comparable lithium atom.
A similar discussion can be made for charges. Adding an electron to the mix increases the electron-electron repulsion (more negative charge) while removing one decreases it. Thus, with each positive charge a cation will get smaller while an anion will get larger with each negative charge. All of this results in rather complex calculations; one should always remember that an atomic radius cannot be easily guessed unless it is a straightforward up/down or left/right movement in the periodic table.
As for your second question: an anion may be smaller than a cation if the anion has very few shells and the cation very many. Unfortunately, the Wikipedia article on ionic radii does not quote a size of the hydride anion which would otherwise be a strong contestant. Instead, the smallest anion in the tables is $\ce{F-}$ with a crystal ionic radius of $119~\mathrm{pm}$ in hexacoordinate state. Searching for a cation that is larger quickly gives potassium with $152~\mathrm{pm}$ crystal ionic radius. In effective ionic radius terms (the second table), fluoride is mentioned as having $133~\mathrm{pm}$ while $\ce{K+}$ has $138~\mathrm{pm}$. Thus, by both sets of values the cation in $\ce{KF}$ is larger than the anion.
In crystal ionic radii, chloride is smaller than caesium and fracium while the latter two’s effective ionic radii are larger than chloride’s.
As you can see, there is no hard and fast rule. Fluoride to potassium is a period and two elements difference while chloride to eka-francium is four periods and two elements.