Q:

Why do automatic bone weights paint distant meshes

I have created a simple block-person from a few cube meshes, as well as an armature. When I parent the armature to the meshes with automatic weighting, it seems like blender is assigning distant vertices to a bone while ignoring nearby vertices.
The docs on automatic weights say:

It calculates how much influence a particular bone would have on vertices based on the distance from those vertices to a particular bone (“bone heat” algorithm)

This doesn't seem to be what I observe. The calf.r and thigh.r bones are closer to the vertices in the right leg than the vertices in the left leg, yet they entirely influence the latter (visa-versa for the left side).
I realize that I can manually assign vertex groups if needed, but I'm wondering if this unintuitive behavior means I set up my mesh or armature poorly.

A:

Yes, there are some issues with your work. Several objects have their origins misplaced, rotations and scale unapplied, non-uniform scales, ... You must always fix this before even creating the armature. And never scale your armature unless the rigging and skinning are completed and you really have to.
Also, automatic weight never does a perfect job, and it surely works better when you have your bones and meshes correctly placed, not set in a pause which may lead to confusions (like the arms stuck along the body) and with enough bones and vertices to make the assignations obvious.
In your case, you have a very simple mesh and with not mathematically logic needs for the weights, so you will be way faster by assigning your weights in edit mode or weight paint.

