Access Bone Coordinates using Python API
API docs:


  head - Location of head end of the bone relative to its parent
  
  head_local - Location of head end of the bone relative to armature
  
  tail - Location of tail end of the bone
  
  tail_local - Location of tail end of the bone relative to armature


Since Bone 1 has no parent, the vector between object origin and bone head is used.

Bone 2's head it at Bone 1's tail (Connected is ticked), thus Bone 2's head is at (0, 0, 0) because there is no distance between both.

Bone 2's tail is at (0, 1.732, 0) because it's given relative to its parent bone. Bone 1 and 2 face the very same direction, all it takes is the length of the bone to define its endpoint (Bone direction is on the Y-axis in Blender). Tail minus head is

(3, 3, 3) - (2, 2, 2) = (1, 1, 1)


and the length

sqrt(12 + 12 + 12) = ~1.732