What physics make an object not pass through another, if it's the "Child Of"? I am trying to add physics to the Lego Figure I have modeled. 
The body of the figure, has holes on each side for the arm, just like real Lego Figures do.

I know I can attach the arm to the body, by using the "Child Of" Constraint. 
If I do so, I can only rotate the arm in one direction, or else it would pass through the mesh/body. 

How can I add physics, so that I can rotate the arm also to the side, or even let it pop out, without one object passing through the other one.

Does anyone know how to do so? 
Maybe what physics I should add to make it work that way?

And different question, how can I let my figure pick something up, can that also be controlled by physics?
If you need physics for the project you're working on. You'll want to set the origin of each of your arm pieces to their joints. Parent the arm to the body. Then use a limit location constraint to keep the arm attached to the body. To do this copy the location coordinates to the maximum and minimum values for each axis, activate all the check boxes, and change the convert value to local space.

To unattach and reattach the arms you will probably need to write a script that will remove the parent relationship and the constraint between the arm and the body when a certain event occures and then set up the relationship and constraint again for the new arm.

As for picking stuff up, a similar limit location and parenting set up should work in conjunction with another script.