Is it bad practice to use overlapping meshes/objects?
I think that « 1 or 2 objects » and « meshes overlapping » are two different topics, and what you decide really depends on your needs. Anyway:


Don't overlap the meshes of your object if you want to 3D print.
In the case of a gun with a barrel, if you don’t need to animate the barrel you can keep one unique object. No matter if some meshes overlap, but you could consider deleting some vertices if they are invisible, i.e. useless. If for a reason or another you want to keep 2 separate objects (for example you want to keep a modifier only on a part of the whole object), you can decide to parent the barrel to the gun, or parent the 2 objects to an empty, it will make the manipulations easier.
If you need to animate the barrel (or the sails of a windmill) you'd better make 2 separate objects, it will allow you to parent the barrel to an empty and make a 360° rotation. If you keep the whole gun one object you'd have to use bones and anyway I don't think you can make a bone rotate more than 180° (?).