LambdaMOO was the former: you were using existing objects to code new objects, by sending the existing objects messages on a live server. (A bit like writing bash scripts on a multitenant Unix server where everyone can drop things into /usr/local/bin, really.)
I feel like there’s a wide-open space in the market right now for a game like Minecraft or Mario Maker where everything is built out of “blocks” with behaviours—but where these block-type behaviours are scripted within the envrionment itself, so you can create and share new “block types” without the need for any meta-VR commands. Like a Steam Workshop service, but one that is intended for players, rather than for game developers. A game with an scientific invention economy.
Each prim can have event driven, procedural scripts attached to them. There is basic RPC functionality available in LSL and objects can communicate with each other via chat channels, email (if I remember rightly every prim has a UUID and email address) or via a XML HTTP request.
Prims can be programatically moved or altered, there is a system for drawing particles, rendering dynamic textures on surfaces and much later I believe surfaces became capable of rendering web documents on them.
There is scope for a ridiculous amount of stuff. One of my favourite little projects was the Stargates you found on the grid, they all have unique addresses and work accurately just like in the show, they're pretty neat for getting around.