Good example, Nasmkid! I suppose the 'M', 'Z' at the start of a dos file, or the 7Fh, 'E', 'L', 'F' at the start of a Linux file would be examples. You don't "need" a label. As Christian points out, we don't always need to access these bytes from our code. S'pose we did:
cmp word [0x7DFE], 0xAA55 ; assume ds=0
jne invalid ; could use a hard coded number here, too!
Or, we could put a label on it, and do:
cmp word [bootsig], 0xAA55
jne invalid
The only "cost" involved is the hardship of typing in the labels. And it makes Nasm do more work, but that's its job!
Essentially, all of assembly language is "fancy names for some numbers". Might as well try to make the names "meaningful". But it's a "convenience" for the programmer, not a requirement.
Best,
Frank