sexps are ok, up to the point where you need actual code to run complex algorithms.
It's worth noting here that the sexp system is Turing-complete.
didnt you once suggest turning the sexp system into a pure lisp interpreter? that would be pretty cool.
the real difference between the two systems is the interface features exposed to each. there is some degree of communication between the 2, and youd need the features of both, i figure, to pull off whats suggested in this thread. lua is good at both the object level and can operate on its small set data types, and also has hooks, exposing more entry points within the engine to run code. sexp system on the other hand works with strings and numbers, oop is not possible. also arguments dealing with objects require a c level interface, and you are limited to a single entry point. then the obvious limits, like the string-length of a sexp and sexp count, as it was implemented around a point and click interface for non-coders. yet still there are things you absolutely have to have sexps for. like try freeing a beam with a script (actually you can do this by setting up and running an event from the scripting environment). thats comparable to setting up and rendering a render target with a sexp (again, also possible with several script-evals).