Why does Automatic Weights paint distant vertices?
I finally have a theory. I believe you may be gettting a bone heat weighting error. That happens when you try to bind a mesh to an armature when the mesh is made out of too many different or intersecting parts, and Blender can't figure out how to weight the vertices. I was able to fix this by breaking up all the parts first in Edit Mode with p for the Separate menu, and then Separate by Loose Parts. Then I selected the face mesh and Shift + selected the head mesh, and joined them with Ctrl + j. Then I went into Edit Mode for this new head object and cleaned up this mesh so that the two newly joined mesh parts would be sure to have their verticies merged (Mesh &gt; Cleanup &gt; Merge By Distance). After that, I was able to do the normal binding operation by selecting this new version of the head mesh in Object Mode, Shift + selecting the armature, then Ctrl + p to parent it, and choose Automatic Weights. There were no issues with distant vertices getting bound to the armature.
I recommend that the entire mesh to be bound to the armature is a single, continuous mesh with no other, distinctly separate objects having been prior joined to it. Just as importantly, you should make sure that no other mesh parts are physically colliding or intersecting the mesh anywhere. When they intersect, or are joined together, and then you try to start a binding operation, this issue arises. Your model has eye objects intersecting with one another, and also intersecting with your face. Your face and head have intersecting geometry around the lobe of the ears also. This isn't clean modeling and you don't want it.
When you clean up your model so that all parts are separate (not joined together) and not intersecting one another (not colliding), you will be able to bind those mesh parts to the armature without any problems.