This has nothing to do with constant values, at least as the spec defines them. This rule applies in cases like:
var x float64 = 3.0
var y float64 = 4.0
z := x+y
It does not apply in cases like:
var s float64 = 3.0 + 4.0
The former sort of constant folding must adhere to IEEE 754 and has to worry about things like NaN. That is the situation we're in when applying rewrite rules like those quoted.
(I believe the rule is written like that because we don't want to generate NaN at compile time. NaNs are strange and their encoding is somewhat dependent on the platform, so we'd like runtime platform operations to generate them.)