>"How is this possible"
Because attributes on blockreferences have NOTHING to do with your block(definition)!
Create a new blockreference by using command INSERT or by drag&drop, DesignCenter or which way you prefer
and autocad creates a blockreferenc which shows the block content except the none-constand attributdefinitions,
and attach attributes to this new blockreference, based on the current template= the none-constant attriutdefinitons of that block.
attributes are part of the blockreference, not of the block, otherwise it would be impossible to have different attribute values for each blockreference.
(constant attributdefinitions are not much more than simple (M)TEXT elements in the block(definition),
so it is part of the block and it display for each blockreferenc identical - like circles and mtext and so on.
So in fact: It doesn't exist "constant attributes', only contant attributdefinitions=ATTDEF)
Test:
1. Create a Block, with a line and a none-constand ATTDEF "A1"
insert one blockreference
with a line and a none-constand ATTDEF "A1"
2. BEDIT this Block, and add a none-constand ATTDEF "A2" and set the color to red
insert one blockreference
3. BEDIT this Block, and add a none-constand ATTDEF "A3" and delete attdef "A1, and set the color of "A2" to green
insert one blockreference
4. BEDIT this Block, and add a none-constand ATTDEF "A4" and delete attdefs "A2" "A3"
and do NOT insert a blockreference.
5. SAVE the file now.
Compare all three blockreferences of the same block now.
And to write down "all things" - sorry, time ends now.
5. Use ATTSYNC
None-constant ATTDEFs are template to create blockreference, nothing more.