I found that in PD-extended 42.5 - the $1 inside a message is not saving
data. Is it a bug ? see patch below.
no, it's expected behaviour and has been like this since forever.
a $arg in a messagebox will always be replaced according to the incoming message. it doesn't have a memory.
...
A programming language is a lot about being consistent, and as such it seems logical that a msg should retain its last known state, so that when receiving a bang it would output its last stored values. msg certainly stores the remainder of a non $arg list (if any) and even saves it with the patch, so I would argue that it very much has a kind of "memory" that can be altered with [set{.