I have just begun tinkering with SLua and I love the potential. However, one weak point of scripting in SL (both both LSL and SLua) is the ability of scripts to interface with another.
As far as I know, we still mainly use LLEvents.link_message and ll.MessageLinked. One issue I have with that is that all the parameters are strongly typed. If we could pass (at least one) dynamically typed parameter, we could pass object instances along, which would make it much more powerful.
To name one simple use case: let's say we have various scripts that all need to show a menu with ll.Dialog. We could have a single script that can instantiate a "Menu" object and pass it back to the calling script, which can then implement it for that script's situation and run the predefined Menu:Show.
Another use case might be that when clicked, a script creates an "Avatar" object and then passes that to one or more handler scripts (based on whatever criteria prevail) that can use that object in their own logic.
Perhaps there is another way in SLua but I have not yet found it in the docs, but I am of course happy to be educated further. Something like this would enable us to make much more loosely coupled and dynamic and reusable systems in SL scripting.