That's 3.0.4? Sure?
It's the only compiler I have installed, therefore, for sure it is FPC v3.0.4
As far as the assembly code you posted, there is no guarantee that what the assembly code shows is what actually ends up in memory. A bug someplace can cause what is produced to be different than what is spec-ed.
What I posted is what ends up in memory, executed by the CPU and, it is clear, in one case, the constant is in a read only section and in another case, it isn't. That's a fact.