I am an amateur mathematician, and certainly not a set theorist, but there seems to me to be an easy way around the reflexive paradox: Add to set theory the primitive $A(x,y)$, which we may think of as meaning that $x$ is allowed to belong to $y$ and the axiom
$\forall x,\forall y, x\in y \rightarrow A(x,y)$
and modify the axiom schema for abstraction to read, given any wff $\phi(y)$ in which $x$ is not a free variable,
$\exists x,\forall y, y\in x \leftrightarrow A(y,x) \wedge \phi(y)$
Then if we try to construct the set $B$ of all sets not belonging to themselves, we get
$\forall x, x\in B \leftrightarrow A(x,B) \wedge x\notin x$
Then, instead of the reflexive paradox, we get
$B\in B \leftrightarrow A(B,B) \wedge B\notin B$
which is a consistent statement that implies both $B\notin B$ and $\neg A(B,B)$. Moreover, since $B$ is arbitrary, it follows that no set can be a member of itself.
Now, this all looks correct to me, but I can not believe that such a simple trick has been overlooked for over a century. So I have to believe that either its been done and I am simply unaware of it, or I've made a mistake that is staring me in the face and I just can't see it. Can someone set me straight on this?