Nim's VM was _designed_ to evaluate the `NimNode` structures effectively, it was designed for Nim's macro system. The NimScript thing came much later. Back then I did look into using Lua instead of a custom VM but the NimNode thing is much harder to do with stock interpreter technology or JITs for that matter.
That said, I now think there is an inherently better design but I don't want to spoil it because it'll be covered in my next book. Eventually.
