When the following is compiled with compile-file
(defun foo ()
(eq #1=(load-time-value (cons 1 2)) #1#))
the result of (foo) becomes T. And this usually manifests in macros.
"If nil [read-only-p] (the default), the result must be neither copied nor coalesced; it must be considered to be potentially modifiable data."
The code which appears to be responsible for this is
The patch that fixes it for me is attached, but not sure about other implications of such a change.