Robot that builds a copy of itself
This seems pretty much bordering on the impossible, given the current state of (LEGO) engineering capabilities. What you are describing is a Von Neumann Machine and as far as I know nobody succeeded in creating one, not just in LEGO but in general.

The problems you'd have to overcome:


The robot must be capable to exert sufficient force to overcome the clutch power of the LEGO bricks. This could be done with a suitable set of gears. However the gears themselves eat up a lot of the motor's force due to friction. Pneumatics is absolutely out of the question for these parts.
The robot must be capable of positioning the LEGO pieces with sufficient accuracy. I have no hard data available on the precision of the various LEGO actuators (motors, pneumatics, linear actuators, what else?) but in my previous LEGO experience electric motors can be tricky to program to operate with enough precision, but it can be done with enough testing and refining iterations for a given physical design. Again, gearing down would in theory help a lot, but all gears have some inaccuracy. LEGO gears are not among the most precise ones. You could easily test this by linking about a dozen cogwheels together in a chain, holding one end tight and testing how much can the other end of the chain rotate. Pneumatics are also out here, you can't get them to stop reliably anywhere but the end positions.
The robot must be capable of picking up, holding and placing every type of LEGO piece it is constructed from. This means either an universal actuator that itself can handle every element or more than one actuator, each specialized for a subset of all elements. The actuator(s) should also be capable of orienting the pieces in 3D space, this requires at least 6 degrees of freedom 
The robot must be capable of finding and distinguishing between different pieces. The hardest version would have the robot sift through a bin full of pieces, but you could "cheat" by letting it use pre-sorted, pre-positioned stacks or queues of individual piece types. Even that would bring many problems, the robot must know which element is where, how high/far is the current part in each stack/queue, etc.
In the strict sense the robot should transmit it's program to the newly built robot. I'm not familiar with the current lineup of programmable bricks to state confidently whether it is possible at all for a LEGO brick to program another, but even if it's possible it would require some serious programming.


In your examples you can see how complicated, huge and slow can these creations can become. But you can also see how highly does the LEGO community think of these creations, each of which does only a small fraction of your proposed project. I'm not saying that it's impossible, but I don't think it would be an understatement to say that this would be the single biggest achievement in the world of LEGO and in general engineering too.