When should object parts be part of the mesh and when separate? I am learning to model in Blender with emphasis on character design and animation.

I have both tried to implement models as a single mesh with Vertex groups and shapes keys as well as separate objects (parented). However, I still do not have a clear idea on which is a more correct method of attaching extra elements to a mesh, such as, eyebrows or eyes.

It seems like having them in the same mesh is easier to manage. Whereas having them as separate objects/meshes allow easier re-usability.
There are no rules about this. Whatever is more convenient for you in a specific situation and whatever works is fine.