The afterbirth also contains much needed nutrition. It was more important for the bitch to eat the afterbirth (placenta) in the wild than it is in our pampered pooch's lives. The instinct is very much still very well and alive in them though.
It was a fight to keep Dixie from eating it after each puppy. If I wasn't faster than her, then they were gone. She ate them like it was the best delicacy in the world. I only was able to keep 2 of the 10 from her. This also causes very runny diarhea in the bitch for about a week or two.
The reasons you have already mentioned are valid also but the nutritional value is probably at the top of the list along with keeping the den area clean so predator's can't find the area so easily.
Hope this helps
Bookmarks