This is one "is an error" condition that is fairly painful: it isn't determinable by even the most careful amount of flow analysis, much less a simple syntactic check. To change "it is an error to destructively modify the pname of a symbol", it is necessary to either introduce copy-on-write or else change it to "signals an error". If the former is controversial, would you accept the latter?