You're right - the state name must be a valid ActionScript identifier. We are planning to change this in a future beta so that you can use any string.
The reason is that the state name is used as an identifier in MXML code. If you draw a rectangle, duplicate the state, and drag the rectangle, you'll get code like this:
We can't allow spaces because XML attributes names can't have spaces in them, and MXML is valid XML.
Admittedly, this is rather confusing and arbitrary-seeming, which is why we're changing it =).