I only found TECS last fall when I was looking for materials for an ex-student of mine, so I can only guess about motivations about what was and wasn't included. My guess it the the authors wanted to emphasize that everything can be derived from NAND (they could have used NOR instead). It makes a good primitive function because it's at the boundary between mathematical logic and physical electronics.
I raced through chapters 1-3 so that I could be ahead of my student so I did things as quickly as possible and ended up make several chips that were not in the projects so that I could build the more complex chips: Wire, Make16, And16x1, and others. Later I went back and thought about how to use only the chips in the projects to build everything. (And without using the chips in strange ways.)
Using two NANDs to make a wire isn't as insane as you think. Check out Signal Crossing.
Internal buses are created when they are connected to a part's output. You can't connect a bunch of outputs together to make an internal bus. You can hook more than one signal or bus to an output. For example
And16(..., out=word, out[0..7]=lowByte, out[8..15]=highByte);
creates 3 internal buses:
word is 16 bits wide,
lowByte and
highByte are 8 bits wide.
If you want an Xor that operates on 16-bit buses, build an Xor16 out of Xors. If you want to Xor a 16-bit bus with a 1-bit signal, that's another job for Mux16 with the help of another xxx16 chip that you've already built for the project.
--Mark