I don't know. That comment is in the documentation since who-knows-when and no idea what the author had on mind.
The difference is that "SDOT.X" is internal structure offset, like +4 for example (checking now docs, it's actually +0 in docs example 6.2). "COLOR.GREEN" is instance of structure somewhere in memory, so it's address like 0x1234. ("SCOLOR.GREEN" is the one to not use directly, that's part of structure definition)
I'm still confused what issue was author foreseeing and what improvements he had on mind, because as far as I can tell, there's nothing tricky about using the structure offset itself that way (except it makes little sense, why would you want to do `ld a,(SDOT.X)` .. to read ROM?)
Even if you really want to read the data from ROM 0x0000 area, you can create "instance at address" like `ROMDOT SDOT = 0x0000` and use `ld a,(ROMDOT.X)` instead to avoid the offset label. (or ORG 0x0000 and instance SDOT after that).
The warning is specifically about memory indirection "(address)", so `ld de,SDOT.X` is ok, no issue with that. But right now in current sjasmplus `ld de,(SDOT.X)` will work too, assembling as `ld de,(0)`. Maybe the original author did plan to add some warning in such case, to make sure you didn't forget `ix+` or something like that?
I don't know. :)

