Lean is a macroassembler without macros. It pattern matches things like A=300 against A=<constant> and generates appropriate code for that ; e.g. ldx #1 lda #44 (300 = $0144).
There's some code to hack structures and procedures, so you get this weird pseudoassembler, without any actual 6502 assembler. The idea came from here http://www.terse.com which is an x86 implementation of the same idea, though I have a memory of a very similar thing for the Z80 years ago. What makes it unreadable is only have 24 bits of storage inside the 6502. The 6502 has one purpose in life ; to be cheap.
It looks like this https://github.com/paulscottrobson/lean/blob/master/testing/balls.src it's not that readable, but it's *very* fast compared to anything other than raw assembler. The mario demo (test1.src) goes like stink . The balls demo has to be slowed down otherwise it's just a blur.
You pays your money. Really the answer is probably a compiler that compiles pseudo-code when it suits or 6502 assembler when it suits ; the 90/10 rule. Your pcode interpreter doesn't care about speed efficiency and your 6502 code doesn't care about space efficiency.
I had a language which was syntactically closer to XCPL but had no assignment statement that I wrote for the Z80 (which can do 16 bit stuff straight off), but more readable than Lean.