The example under the header ‘Value replacement’ of the r.recode help file (http://grass.osgeo.org/grass70/manuals/r.recode.html), the ‘rules=-’ is missing
Now:
r.recode input=oldmap output=newmap << EOF
1:1:1.1:1.1
2:2:7.5:7.5
3:3:0.4:0.4
EOF
should be:
r.recode input=oldmap output=newmap rules=- << EOF
1:1:1.1:1.1
2:2:7.5:7.5
3:3:0.4:0.4
EOF