Why do vinegar and other acids remove rust?
The acid can dissolve rust (e.g. $\ce{FeOOH}$). The chemical reaction is:

$\ce{3CH_3COOH + FeOOH -&gt; Fe(CH_3COO)_3 + 2H_2O}$

EDIT: ($\ce{Fe(OAc)_3}$is NOT soluble in water) The acid forms a water-insoluble salt with the iron oxide, which then probably just crumbles from the rust layer and precipitates in the container.

Mind that rust also contains for example $\ce{FeO(OH)_3}$ and $\ce{Fe_2O_3·nH_2O}$. The mechanism is the same.

Also, the acid oxidizes the upper layer of the iron under the rust to form a rust-resisting oxide-layer.