Looked it up as I was curious of the answer as well. Basically, "machines" are used by:
1. Node manager
2. Load balancing / failover (in absence of web proxy for your cluster, or just a preference of not using it.)
"A machine is the logical representation of the computer that hosts one or more WebLogic Server instances (servers). WebLogic Server uses configured machine names to determine the optimum server in a cluster to which certain tasks, such as HTTP session replication, are delegated. The Administration Server uses the machine definition in conjunction with Node Manager to start remote servers."
Also, there is a pretty good doc explaining failover / load balancing using machines instead of web proxy (Which is what I currently use, that is why I don't have machines defined)
.
http://download.oracle.com/docs/cd/E13222_01/wls/docs90/cluster/failover.html