[You might want to move your logisim circuit to pastebin, like you did in your earlier post with your HDL, so that the spoiler is hidden.]
It is better not to spend too much time worrying about gate/transistor count. It is more important to develop and use higher level abstractions
Also, Nand-based counting does not reflect the modern (CMOS) world too well. For instance, a transmission gate based Mux requires 6 transistors, while a Nand based Mux requires 14:
There are also optimized circuits for things like Xor, and it is possible to make many other combinations of gates using a small number of transistors. Here is an And-Or-Invert gate (computes Not((a b) + (c d)) ):
--Mark