1. An object can only have one parent at a time.
2. An object cannot be the child of one of own it's children. This is what the Acyclic part mainly refers to, in a hierarchy you can't have something parented to one of it's children, otherwise you'd get a cycle if you consider how transforms are distributed from child to parent (If you move the parent, the child moves, and if the parent object is under the child as well it receives additional transform...). Maya dosen't allow this for DAG objects.
Simply put, DAG is mostly for hierarchial distinctions. Any node which has transform attributes is a DAG object. You can see DAG nodes when the Hypergraph is in the Scene Hierarchy mode.
DG - Dependancy Graph node. Two main important things here, nodes and their attributes. The dependancy graph is a way wherein you can connect multiple nodes to come up with an output (rendred images, animated geometry, etc.), in fact you can actually define almost any scene file by what nodes are present and what connections exist between these nodes (in theory). A DG node is any node that can be connected to other nodes, and they are not necessarily visible in the Scene Hierarchy mode of the Hypergraph, but you can show the Dependancy Graph of a particular object by selecting it and clicking the Input and Output Connections mode.
The beauty of Maya is that almost everything is defined as a connection of nodes and attributes. When you're doing stuff in the interface, creating shapes, rigging, applying shaders, you're actually just creating new nodes with data and attribute connections. The concept is just as simple as that. Once this becomes clear, and once you begin to understand what each node type is for and start studying the connections you can actually do more things by playing with nodes connections to enhance your workflow.