This is true if you are applying color directly to the mesh vertices, like you do with Polypaint.
When you apply a texture via the Tool > Texture Map menu, it will be displayed according to way your UVs and image map are laid out, across the entire subtool. The only thing hiding a portion of the subtool does in this case is determine what portion of the mesh is visible. It has no role in determining how the texture is displayed. Zbrush supports a single set of UVs, and a single texture map per subtool.
If you have several image maps you’d like to combine into a single texture for a mesh, paint those images as Polypaint onto the mesh with Spotlight or otherwise, then bake a texture from the Polypaint..
You could also apply each texture in turn, hide the portion you don’t want to be affected, and use Polypaint > Polypaint From Texture to apply that texture as polypaint only to the visible portion of the mesh you want to be painted. In this case, hiding the mesh will protect other portions from being filled. Then create a texture via the process above to create a unified texture.
Hope this is helpful!