Ton deuxième appel à setY() n'est pas OK non plus, tu n'as pas le droit de faire ça même si ça peut marcher avec ton compilo :
The referent of a const-qualified expression shall not be modified (through that expression), except that if it is of class type and has a mutable component, that component can be modified (7.1.5.1).
(par contre je pense que ton deuxième appel à setX() est OK, même si tu appelles la version non const de setX() elle ne modifie pas de membres non mutables donc ça va : enfin c'est pas propre du tout, parce qu'à moins d'avoir le code de setX() sous les yeux c'est pas garanti)