How to avoid pinching when constructing joint topology? I am making a model for a friend. The arms are giving me trouble. Specifically the arm sockets.

What's giving me trouble is that the arms are very close to the head, unlike the human body, leaving very little space for shoulders or a neck. Because of this, I have no clue how to structure the topology correctly, even after browsing through the Blender StackExchange for an answer that applies to this situation.



With this current topology, the arm socket pinches really bad with an armature.



How should I structure the topology of this arm socket so this arm can move around in all directions (like arms usually do) without this bad pinching? (I want to avoid resorting to creating an arm that's just punched through the torso, so please avoid this unless it's the only solution.)

Here is the .blend file: 

Thank you in advance.
Topology alone will not do much for you. It's about how the bones influence/deform the topology.

To minimize pinching in such areas you can do 4 things:


Use Corrective Smooth modifier after the Armature modifier. This is designed for this problem (new in Blender 2.75). Use the vertex group input to influence what regions to smooth.
Change the bones point of rotation (this will change the radius at which the vertices rotate when bone rotates).
Smooth the deformation influence - couple options:


smooth bone weights or smooth them across multiple bones
use low-poly lattice or mesh deform to deform the mesh, deform the lattice/meshdeform with armature - this smooths the deformation

Use corrective shapekeys driven by bones.