Is this normal behavior?

cls := Object subclass: #Something.

cls compile: 'array
^ #[1 2 3 4]'.

cls new array. "#[1 2 3 4]"

cls new array at: 1 put: 55.

cls new array. "#[55 2 3 4]"

(cls>>#array) sourceCode "'array
^ #[1 2 3 4]'"


So I can permanently change the compiled byte array in the method, which is weird.

Shouldn't the behavior be either

a) don't change the original byte array

or��

b) change the source code

Thanks,
Peter