Adding physics to a game, is not just a matter of flicking a switch, and then you have a "Real World (TM)" simulation.
One of the more common problems, is (like you noticed) objects overlapping on collision, or even completely morphing through each other. How to fix this, depends on your needs, so while there are a few common guidelines, like letting the physics simulation run more often, it can be solved in many ways.
How objects behave when hit by another object, is a matter of tweaking the physics parameters, and there are quite a fe of them. It is possible to make all kinds of weird systems not behaving radically, and where the physics simulation becomes unstable.
So making good physics in a game, is a matter of experience, and of trying "what works" in your actual implementation. At the end of the day, Chipmunk2D is a very stable and well working engine, and most importantly, it is the fastest 2D physics simulation available.