So, is a label a shape? Actually they are both. All shapes have geometries and a text block that have a Height, Width, pinX and a pinY (in the Shape Transform section) AND they have a txtHeight, txtWidth. TxtPinX, TxtPinY (in the Text Transform section). So, the existence and location of the shape and the text are totally independent. Even the orientation of the shape and the orientation of the text is independent. As described later, it is better not to keep them separate.
There are “limitations”, each shape can have one colour, one fill pattern, one line pattern and one text block. Of course, Visio has work arounds for these limitations. The main way is to group shapes. If you want to make a traffic light, you can make three circles, a red one, yellow one and a green one and then group them. When you group shapes, you create a “group shape” and the component shapes become “subshapes” to the group shapes.
Grouping
Of course, grouping is not always necessary. Below is six versions of the same shape. It is not a grouped shape, but a shape with six geometry sections. Each geometry section has a formula in their NoShow and NoLine cells to control the visibility of the circles. There are also formulas in the Geometry sections to manipulate the x and y coordinates of the dots.

There is an Ungroup command, but it is not always reciprical. If you edit the “group shape” or add intershape references to “sub shapes”. Ungroupng wil delete the “group shape” and will break any intershape references. I tend to use User cells as a bridge for intershape references so that if the shape is ungrouped, it is just a matter of reestablising the bridges.
When you do group shapes, you can use inter shape formulas so that the shapes work together. The top/group shape can be used to store shape data that the sub shapes can use.
Visual Database
I consider Visio, a Visual Database. It has entities (shapes) that have relationships (connections). What you see in a Visio diagram can be “seen” by a program. So, just having a random text block that is not “connected” to a shape does not make sense to me.
Shape Data
Like all databases, Visio shapes can contain data. This is handled by the Shape Data Section. Visio provides a Shape Data window to expose the content of the shape data in the UI. The Shape Data window can only show one shape at a time. If you select several shapes, the window shows the value of the first shape. If you change a value in the window when multiple shapes are selected then all selected shapes will have the updated value. You can add new shape data by using Define Shape Data with several shapes selected.
Other than the Shape Data window how else can you visualize the information without selecting the shape?
Data Graphics
Using a lot of of text boxes, could make the shapes look busy and cluttered. What would be useful if there was a way to add embellishments to a shape to show how much of a resource is used, like a bar graph or colour it so that a resource can be identified as critical (red) or okay (green) without spelling it out.
Here are some samples.
Text Colour
So, if you can only have one text colour for a shape, wouldn’t a set of coloured text blocks make the text look chunky? Visio’s workaround is to use the Character Section so you can control the font, size and colour at the character level.

Resources
If you want more Visio information, you should follow the Visio MVPs. Though there have been several thousand MVPs over the decades, there never has been more than a dozen Visio MVPs world wide, now it is half a dozen. Check out their tweets and blogs. If you get a chance, catch one of their webcasts and ask questions. These guys KNOW Visio.
David Parker aka @bVisual bVisual.net
Chris Roth aka @VisioGuy www.visguy.com
Scott Helmers aka @visProcess
John Goldsmith aka @JGVOICE visualsignals.typepad.co.uk
Michel Laplane aka @MichelLaplane
Senaj www.oneassist.de
and Alexandr Kuzin!
Hi, John !
You forget about Russian MVP 😦
Sorry. You are definitely one of the MVPs in the Visio community.