So, any robot available at level 1 is also available at 2 or 3, you just get more possibilities of basic leg/race (level 1 you can only get protectrons, level 2 you get 50% protectrons, 25% robobrain, 25% assaultron legs, level 3 you get a 30/30/30 on protectrons/robobrain/assaultron, and a 10% on sentrybot.) The only option I've considered adding is disabling sentrybots at level 3 just due to their size. I'll see about other changes and the work they'll take after I release the robotics advanced industrial tree (it's a ways off again, my CK crashed and I lost several days of work, but it did prompt me to build an automatic backup system! :P).
the torsos, arms, hands and head chances don't change from level to level.
The assembly is random, and I'm not doing the randomization, the robots (at all 3 levels) are given the list of all torsos, basic arms for each robot type, basic claw hands (so really only 3 hands are available, protectron, assualtron, robobrain), and all heads (mr. handy torso is an exception and always gets a single Mr. Handy eye with his torso because he can't have a head on him). So "resetting" won't do any good. The reason you see the same robot come up repeatedly is honestly there just aren't that many torsos, arms and heads, so getting the same set isn't that unlikely :P
The legs are selected first and determine the race of the robot.
All of these mods are put into a list, and the engine is what selects one, so "resetting" isn't going to do anything, I don't keep track of the distribution in the code and the seeding on the randomize function is handled by the engine.
Having said that, if you disable/reenable a robot (or if it gets caught in the provisioner reset bug), then it'll get a new random configuration of parts (but retain the same base robot type).