I’m sure Wayne will be along shortly to explain it better detail (correct my mistakes) but basically the general rule of thumb is that each bone has its own unique function.
So, DEF bones are the main “skeleton” of the rig. These are the bones actually skinned to the geometry.
The bones with no prefix will become the custom shapes which act like handles that the animator manipulates to control the rig. When the rig is finished only these bones will be visible.
MCH bones are the workhorses. They generally contain information or otherwise exist to tell the other bones what to do.
Once you get further into rigging it starts to make more sense. With overlapping bones, pop into b-bones view and scale the overlapping bones slightly differently so there is a visual indicator of the overlap. You can also use ALT+LMB (or your preferred select button) to pop up a list of all overlapping objects and choose from that list.
Hope this helps!