I have different file “types” for different uses, and for that reason the set of properties varies by use (structure must be earned, right?). I use templates for each type that automatically populate creation date (for the reasons AlanG mentioned), template used (makes it easy to search and filter) and version (I fiddle with vault structure — up to v4.1 so far). Some plugins require specific properties, so those are built into specific templates. On most files, I include a status field.
Once upon a time I used an excessive amount of fields in frontmatter but experience taught me that many were never actually used, so I’ve limited myself to no more than a half-dozen in any template.
This really rings true:
What makes me a passionate Obsidian user is that the application isn’t strictly teleological. I still use it for several different purposes that the term “note-taking” fails to convey completely. The danger, as the OP said, is becoming a metadata janitor.