Lisp is based on lambda calculus which has no tools to modify programs written in itself, this is apparently a useful feature, so there are many lisp-like languages with added macros as such there are many different implementations of these features. Even something as prevalent in lisp-likes as eval isn't part of lambda calculus, which only has abstraction application and variables (no env). If the notion of reflection is well defined and if tree calculus is reflective then it's definitely not just lisp (certainly not forth) with a different syntax
I'm no expert so take this post with a mountain of salt. Without confusing the issue: In practice it's just a slow lisp, in theory it's different from lambda calculus and can be used to implement that slow lisp-like in a simpler way.
I don’t mean that as a criticism or midwit dismissal. Just want to understand.