Join meshes after rigifying one of them
You don't need anything bound to the armature but the body parts which need bone deformations. So eyes and teeth could most likely be parented (or Child Of constrained) to bones, rather than being skinned with automatic weights. In fact, you likely wouldn't want the eyes skinned in any case. Depending on how your rig is built, you will likely want eyes parented to eye control bones so that their orientation can be changed easily.
Note regarding parenting vs. skinning of the eyes: If you want the eyes controlled by bones that exist within your main armature, and don't want to use parenting or constraints to do it, then technically, you CAN bind them to the armature. But if you do this, the eye objects will need vertex groups. The name of the vertex groups must correspond to the name of the bones which will control them. The eyes technically don't even have to be separate objects from one another. They can be two joined spheres, provided they have unique vertex groups, with only the vertices for each eye assigned independently to each of those vertex groups. The eye bones will find the spheres if their vertex group names are the same as those bones, and control them. The important thing is to have only one vertex group assigned to ALL of the vertices for each eye (meaning no other vertex groups exist for the eyes, and so no other bones will ever influence the eye geometry). Then your eyes will move as if they are directly parented to the eye bones, even though they are technically bound to the armature in the same exact way that any other &quot;skinned&quot; mesh is bound to the armature. But the bind behaves as if it is a direct parenting relationship. Meaning rigid. This behavior results from only having one vertex group involved. If only one vertex group exists on an object, then only one bone can ever influence the vertices for that object.
Note on unjoining objects with modifiers: Whenever you unjoin objects, they keep all prior existing modifiers. These modifiers will now exist for ALL newly separated objects. This includes armature modifiers. Simply make sure that you only have the modifiers you need for all your objects as they now exist. Strange things can happen if you have the wrong modifiers in place, and the resulting issues can be hard to track down, since you might not be thinking of this separation step as a possible cause.