Inconsistent `body_class()` function

The comment from @milo prompted me to take a closer look, and I realised I was chasing a false positive. The About page and Contact page were actually displaying the correct behaviour; it was Home and Services that were wrong. It seems at some point those two pages did have custom page templates, which were later turned into specialized page templates. However, their body classes persisted.

The important thing to take away is: when a custom page template is removed/deleted and there are no other custom page templates to fallback to, the value is not cleared from the post meta, which means it will continue to show those body classes until a new template is assigned.

I will check if this is logged as an issue on the WP Trac later on today.