The benefit of supporting it in the core is that you can build the UI around that and add support in the queries as well as when displaying results.
So the answer to your question is similar to using tags/labels vs throwing some keywords inside the note. I also don't really think adding XML (or even JSON) inside a note, is a nice solution for "regular" users (read: non developer...).
The idea here is more to say for instance that the tag "invoice" requires an amount (which is a random number) so when you flag a note with "invoice", the UI shows up the amount field that you should/must fill up.
This would allow extending queries to more than "find me all notes with the tag invoice" to "find me the notes with the tag invoice that are more than $10".
NOTE: The "invoice" examples are only examples...
Moreover, taking your example (thanks for providing one btw) can become overly complicated.
Consider the following (example...):
- an invoice tag requires an amount (number)
- a "club" requires a "name" (string)
- a "tax" tag requires a year
Just generating the XML/JSON for this simple example will be hell and will pull you out of what you are doing. You are adding a note about an invoice for your football club, the time is not to think about XML or JSON. where the user just wants to create a note, for an "invoice", that will count in the "tax"es for the "club" XYZ.
The user only needs to set the tags that make sense and the UI can request the extra data that will later allow building reports of all the invoice, for a given club, for a given tax year.
Addionnal metadata is good to:
Admitedly, when the metadata is a single string such as "invoice" or "2021", tags do the trick.
In your example actually, the location is a string so it totally could be a tag. The date however, would benefit from being understood as a date in a similar way I mentioned with the invoice amount.
You could use tags (I actually do that...) for the year. That helps finding all the notes (sermon in your case) in 2017, or 2018, or not 2020, etc... but it falls short when it comes to finding all sermons from summer 2019 unless you add your custom implementation.