Why does mesh shrink when using shape keys?
Shape keys work by smoothly, but blindly, moving each vertex from one location to another. It's likely that as each vertex is blindly trying to get to its destination, the intermediate result is this shrunk version of your mesh.

Shape keys are "dumb." They do absolutely nothing to maintain volume, do any kind of skinning, or anything "smart" like that. It's a SUPER simple transform. 

I wish I could upload images from where I am, but imagine a plane with 4 vertices. You have a Basis key that looks like the plane, and then you have a Flipped key that moves the vertices in an X pattern. The top-left vertex goes to the bottom-right, the top-right to the bottom-left, etc. So that the end result is also a plane, but it's upside-down and backward. Each vertex is going to go straight to its designated destination without any concern for any other vertices, so you can imagine that exactly half-way through the process, they're all going to be basically a really tiny point in the middle of what used to be a plane. Something similar is what's happening to your arms, there.

This is what rigs are for ;-) Rigs can preserve the relative position of the vertices so that they don't do weird things like this.

EDIT: For some reason, my image isn't supported on this site, but you can find it here.

In this animation, I add two blendshapes, basis (which you always have) and key1, to the default cube. Then, I select all the verts in edit mode and rotate them around the x-axis (this will be hard to follow, if you can't see the gif). This is now my key1 blendshape. The point of all this is that it doesn't matter that I rotated the verts. If I were using keyframes, the rotation would matter, but not with blendshapes. When I adjust the strength of key1, each vertex will move along the shortest path between its two positions, regardless of where any of the other verts are. This means that all the verts pass very closely to each other about half-way through the transition, which makes a really skinny prism.

This is basically what's happening to the arm. Each vertex is blindly moving to its designated destination, and the intermediate result can sometimes be undesirable.

The solution might be adding intermediate shapes, but this is not the way blendshapes are usually used.

I hope that helps!