When FMS streams a stream into a multicast group, it in effect, will become a peer in the group. IP Multicast is the one exception to this because FMS will bind to a multicast address and port and push the stream directly to it. Because FMS is effectively a peer in the group in the Application Level (P2P) and Fusion scenarios, it will share the stream data with its direct neighbors. By default, FMS will push up to 4 copies of the stream out. You can adjust this value by changing NetStream.multicastPushNeighborLimit. If the server and the clients are on the same subnet, you can set the stream type to Fusion (in the configurator) and FMS will push a copy over IP multicast and share it as a peer in the group. The clients on the same subnet will generally obtain the stream data from the IP multicast first and exchange it with peers in the group who cannot receive data via IP multicast. IP Multicast can be configured in your networking equipment to route the data across additional subnets for more advanced scenarios.
The bandwidth savings becomes more apparent when you have a very large number of participants in the group all viewing the stream. To give you an example, at Adobe we use one server to handle thousands of clients viewing a multicast stream. To minimize the P2P traffic between office locations during these events, we partition viewers in remote offices into a special group designated for that office. By doing that, FMS will send about 3 or 4 copies of the stream across that office's WAN link, and then it will disseminate between the peers in that office.
In the sample multicast player application included with FMS, you can edit the HTML code to enable debugging. The flash variable for debugging is currently commented out. You can uncomment this and the player will display a button that toggles debug windows. If you look in the left debug pane, you will see a printout of the NetStream.multicastInfo properties. You can use these to determine where and how your data is being received.
i.e. bytesRequestedFromPeers would indicate how much you are pulling from peers whereas bytesReceivedFromIPMulticast would represent the data you're receiving direcly from IP Multicast
I hope this helps clear up some of the confusion.