I just discovered this discussion, its glorious. I hope Im not too late to contribute some ideas.
1) I agree with the wires problem, whatever your do for point to point wiring will take prims. What may be iteresting is getting each gate to request the positions of connected gates and adjust its position for closest to all. You may be able to sell tickets during the settling in period.
2) Race conditions got a mention. I would suggest that the global RegionSay channe. gets used to coordinate or clock the circuits. The master prim will alterntely annoounce CLK_UP, CLK_DOWN. At CLK_UP all gates read their inputs (ask for the current output over the local channel) and internally store the result (and, xor etc). At CLK_DOWN all gates set their outputs to the stored value, ready for the next CLK_UP cycle. .
3) I love the idea of using the prim description to identify the gates function, inputs and outputs. Also that a gate may be anywhere from simple (NOR) to complex (Counter) . Using the description its quite possible to use a single script for all gates, rather then one script for NAND and another for something else.
4) Input and output componets. See http://littlebits.cc/ for gate and module ideas.
Andra