In The Haskell 98 Report it\'s said that
A floating literal must contain digits both before and after the decimal point; this ensures that a decimal p
While it could probably be disambiguated, I don't think there is much to be gained from allowing .7 and 7.. Code is meant to be read by people as well as machines, and it's much easier to accidentally miss a decimal point at either end of a literal than in the middle.
I'll take the extra readability over the saved byte any day.