Best practices are very subjective in software development. If you find one person who says "X" I can find another who says "Y" and most likely they'd both be right in the given circumstances.
Most books I'm aware of focus on bringing beginners up to speed, as opposed to best practices.
To answer your specific questions:
Does the application always have to
start on the Main MXML? Can't I
instantiate the first view from an
ActionScript class?
In theory, it seems like it should be possible to have the main application file be ActionSCript; after all the Flex compiler just turns MXM into ActionSCript. In practice, I've never seen anyone do this. I've seen applications that are all ACtionSCript except for the application tag in the main application file.
How would you add a handler to the
first MXML and give the flow control
to it?
What do you mean by handler and flow control? I'm not sure I have a specific answer here. A lot of people make use of frameworks. Cairngorm is the most widely used, but some find it overly complicated. For a while Mate was the community favorite. RobotLegs is the current favorite.
I'm trying to write zero code on my
MXML files to keep the view decoupled
from code. Is this possible in Flex?
It depends. Isn't the view also code? If you want to use a "Model View Controller" Style approach, there are plenty of ways. Frameworks can help and I mentioned a few above. But, you could also go it your own. If you're new to Flex I'd recommend you start your development "Frameworkless" and the bring frameworks into the equation to see if they help solve problems you run into.