You're claiming that LC cannot implement a quoting operator. Which is quite wrong.
What you misunderstand is that a LC quote would not work on arbitrary lambda terms.
A Mogensen quote operator would take a Mogensen encoding, and output a Mogensen encoding of that Mogensen encoding.
Or a BLC quote operator would take a bitstring like 0010 which encodes the identity function λ 1, and output the blc encoding of the nil-terminated list of 4 booleans that represents that bitstring:
> output a Mogensen encoding of that Mogensen encoding
That's not what a quote operator does; it does precisely nothing, yielding the argument formula without evaluating it. No encoding-of-encoding. Just the encoding.
> output the blc encoding of the nil-terminated list of 4 booleans that represents that bitstring
> An evaluated term can be evaluated again, yielding something different.
Yes, and a Mogensen-Scott encoding can be Mogensen-Scott-encoded again, requiring two rounds of decoding, and so on.
Multiple rounds of encoding and evaluation seem inescapable of you have the entanglement of homoiconicity.
The quote operator in Lisp is designed exactly right.
In mathematics there are literals like the number 3 or the set {}. These objects stand for themselves and are not understood as requiring any calculation: they just are.
Symbols like x do not stand for themselves. If you want to talk about x literally as the symbol object, it is inescapable that there is some quoting operator to indicate that the usual semantics of x denoting something else do not apply. (Oxford's A Dictionary of Computer Science has a definition of literal which acknowledges this very issue.)
Literals being constants, it means that when they are concretely implemented in a computer, in the best possible way, they do nothing other than trivially reproduce a canned value that already exists before the program starts.
What's so special about "literals"? They must be symbols in the sense that they can be evaluated. The fact that you've defined them so that they evaluate to something indistinguishable from the unevaluated form is neat, but it doesn't seem to me fundamental. We could have a lisp where you aren't allowed to evaluate a raw number, it would just be a little more awkward.
What you misunderstand is that a LC quote would not work on arbitrary lambda terms.
A Mogensen quote operator would take a Mogensen encoding, and output a Mogensen encoding of that Mogensen encoding.
Or a BLC quote operator would take a bitstring like 0010 which encodes the identity function λ 1, and output the blc encoding of the nil-terminated list of 4 booleans that represents that bitstring:
01000101100000110010110000011001011000001001011000001100101100000100000100000000101101110110