I was also puzzled by the subtle nuances between Christening and Baptism. So, I searched the internet, looking primarily to Church of England argumentation.
Globally, from a religious point of view, they have the same outcome: an incumbent is received among a church. It appears that preference for one term vs. the other seems to be closely related to the specific Christian denomination. Even Church of England considers they are equivalent and wording can be different across parishes due to historical local usage.
The ambiguity is worsened when it comes to translation. As @PLegoux and @uli22 point out, there is a single word in other languages, e.g. Baptême in French, Taufe in German.
IMHO, since there is non one-to-one correspondence between languages and cultures, this can be solved only with the implementation of a new concept in types (not only event type names because it can be useful with other object types): a hierarchical structure.
In such a tree-like architecture, like menus with sub-menus, we could have:
Religious events -+- Baptism -+- (CoE) Christening
| +- (CoE) Baptism
| |
| + (Cath) Baptism
| |
| + (Orth) Baptism
|
+- Marriage -+- …
If the Christian denomination is known, the event type is chosen from level 3; otherwise the generic term at level 2 is used. Generic term can be translated while specific term can’t always be.
Of course, search implementation must take this structure into account so that query for “Baptism” also returns '(xx) yy" and perhaps similarly query for “(xx) yy” could return “Baptism” if there is no such event type in the record but the ancestor generic term is present (may need a boolean for fuzzy search versus exact search).
Translation is very difficult when it comes to terms so much entangled in local culture. I personally consider they should not be translated blindly. Only the generic terms can. My idea of “hierarchical type names” is to always have a fallback “universal” word for the concept while lower branches allow to describe more specifically what is at stake.