General prohibitions against "self-reference" are untenable IMHO.
Consider recursive functions in mathematics/computer science, such as the
standard definition of "factorial". Such definitions obviously include self
reference, but a proper recursive definition contains basis cases that
terminate the recursion and does not result in unbounded recursion.
One might argue that the problem with the "liar paradox sentence":
This sentence is false.
is not so much that it is "self-referential", or that it involves a
"semantic" or "meta-linguistic" notion such as truth. It is simply that
there is an unbounded recursion. The following pseudo-code program blows
the push-down stack:
liar()
{
return(not liar());
}
Bob Smith
EPGY
Stanford University