For 1)...
I think your orig version looks better. The only problem I could see is that the "justice" pillar's script has commands missing parameters. (I had just the luck to do justice last, so I saw the error.)
You can simplify it, though. What you want to check for is that all four blocks are on their pillars. That means when you add one (e.g. D), you want to know that the other three are on (A and B and C all set). By using that idea (and factoring out duplicate code), you can replace this:
<item key="equity">
if (GetBoolean(freedom, "set")) {
if (GetBoolean(representation, "set")) {
if (GetBoolean(justice, "set")) {
msg ("You set the freedom block in its place. The pillars shudder and suddenly glow. A key appears in your hand.")
AddToInventory (pillar key)
SetObjectFlagOn (equity, "set")
MoveObject (equity block, equity)
}
else {
msg ("You set the equity block in its place. You hear a distinctive \"click.\"")
SetObjectFlagOn (equity, "set")
MoveObject (equity block, equity)
}
}
else {
msg ("You set the equity block in its place. You hear a distinctive \"click.\"")
SetObjectFlagOn (equity, "set")
MoveObject (equity block, equity)
}
}
else {
msg ("You set the equity block in its place. You hear a distinctive \"click.\"")
SetObjectFlagOn (equity, "set")
MoveObject (equity block, equity)
}
</item>
with this:
<item key="equity">
SetObjectFlagOn (equity, "set")
MoveObject (equity block, equity)
if (GetBoolean(freedom, "set") and GetBoolean(representation, "set") and GetBoolean(justice, "set")) {
msg ("You set the freedom block in its place. The pillars shudder and suddenly glow. A key appears in your hand.")
AddToInventory (pillar key)
}
else {
msg ("You set the equity block in its place. You hear a distinctive \"click.\"")
}
</item>
Note that you always set the object flag on, and you always move the object, so you can move those outside the "if". Also, notice that I preserved your typo, but you can fix that yourself.

(It says "freedom" instead of "equity".)