>But the one thing they can't do is represent code and trees in general. That's where cons cells come in.
They can if you can nest them, or include references to other keys (like foreign keys in SQL or something) It's inefficient but it's possible. You can even represent trees in a flat array if you work hard enough.
Although maybe I should be pedantic and clarify that you can represent trees with tables but not in tables natively, of course.