I agree with lucasbenicio. I would join the parts that would be welded or joined in the real world, but you can leave the other parts loose. It's easy enough for a user to join them if they wish, and any format you export to will typically be joined together as one mesh. One thing to keep in mind is that you should keep the UVs from overlapping. Overlapping UVs are not desirable in most cases. You can select all the objects at once, then enter the UV tab and make sure you do this before assigning textures.
Blend files can include everything, and I will usually set up a good render of the product for the .blend file. Clients can actually press render and get the same exact results I show in my preview renders. I recommend packing all your textures into the blend as well. You will need to include textures separately anyway, but it's a nice feature and ensures the client is getting all the textures set up right out of box.
The last thing is that if you keep the object as separate parts, then it's convenient to just include all those parts into a Collection on its own. Also, make sure you name all the parts with unique and logical names so the client can quickly understand and know what each object is.