I'm confused, Spatial nodes are not supposed to be visible, since there is nothing to render within a Spatial node.
The Position3D node draws a little gizmo that is only visible in the editor, even when not selected. Maybe that will help? I generally use Position3D nodes when I want to see the position in 3D space, but I don't need something more complicated like a MeshInstance. The only thing to note with Position3D nodes is that they will not show up while the game is running, the Position3D gizmo only renders in the Godot editor.
There are nodes that extend Spatial that have visible elements, like MeshInstance nodes and CSG nodes. The reason these nodes have a visible property is because child nodes are effected by the parent node's visiblity. For example, if you have a Spatial node with a Meshinstance node as a child, changing the visibility on the Spatial node will effect the MeshInstance child node.
Hopefully this helps!