Best way to join objects for texturing and game engines?
The correct workflow is to wait as long as you can before joining anything. Having separate objects is useful for UV mapping, baking normal, and texturing in general. For this reason you should aim at joining your object only when it's time to model a low poly version of it, and in the case where you don't have a low poly version you should only join them just before exporting your mesh to your game engine.