Mesh shrinking and expanding between shape keys
The mesh changing its size is caused by the way the shape key transforms the vertices. You can use different operations (in your case, bone deformation) on a base mesh to create the shape you want, but the shape key only stores information about positions of vertices. To illustrate it here's a simple example:
If you rotate a cube mesh to get the new shape, the shape key doesn't store the path the vertices are moved, so the transition from base mesh to shape key is linear which can result in changing the appearance of the mesh between start and end position.
The top image shows the way how the shape was created by rotating the cube mesh around the 3D cursor.
At the bottom it shows how the transition from the base mesh to the shape key will be performed. As you see, the vertices move in a straight line from start to end position and change the cube's size.
To get the same deformation the bones would create it would be best to keep the armature deforming the mesh. If you can't keep the bones for some reason, inserting more shape keys to get closer to the original deformation causes a problem, since shape keys store the delta transformation: if you set key1 after moving vertices from Z = 0 to Z = 2, and for key2 you move those vertices to Z = 3, then key1 is moving up 2 - 0 = 2 units, and key2 is moving up 3 - 0 = 3 units. If you set both shape keys then the vertices are going up 2 + 3 = 5 units. If you ignore key1 to move them only 3 units you'll have the same problem like before with only one shape key.