There are multiple reasons. One is to show the checksum of the file change and not the file content when an update occurs. The user is suppose to use content and not specify checksum as content and thhe should never specify real_content. The munge moved the content to real_content and only left the checksum as the content for comparison. The history behind this is because we can ask the API for the checksum of the file, so it was more efficient to compare that rather than download the file every time and then calculate the checksum on the puppet device server. HTH. It's what I remember from top of my head and sorry for any inaccuracies.