How can I tear two bones and their skinned mesh apart during animation?
If you wanna tear a bone chain in a specific joint, you can't just break the parenting of those bones, as this will break the skinning as you noticed.

You need 2 chains to overlap in the location of the tearing (exaggerated with a gap):



The amount of overlapping depends on how your bone weights overlap on the mesh.

You skin the bottom piece to the green armature and the top piece to the red one. To tear the limbs/parts apart you just separate the armatures.

The only problem is mesh smoothing in the area of tearing. You can fix that with normal mapping or with custom split normals that blender now supports.